日历的日期对象 [Java]
我有一个类电影在其中,我有一个开始日期,一个持续时间和一个停止日期。开始和停止日期是日期对象(私有日期开始日期...)(这是一个任务,所以我不能改变它)现在我想通过将持续时间(以分钟为单位)添加到startDate来自动计算stopDate。
据我所知,使用Date的时间操作函数已被弃用,因此是不好的做法,但另一方面,我认为没有办法将Date对象转换为日历对象,以便操纵时间并将其重新转换为Date对象。有没有办法?如果有最佳实践
我有一个类电影在其中,我有一个开始日期,一个持续时间和一个停止日期。开始和停止日期是日期对象(私有日期开始日期...)(这是一个任务,所以我不能改变它)现在我想通过将持续时间(以分钟为单位)添加到startDate来自动计算stopDate。
据我所知,使用Date的时间操作函数已被弃用,因此是不好的做法,但另一方面,我认为没有办法将Date对象转换为日历对象,以便操纵时间并将其重新转换为Date对象。有没有办法?如果有最佳实践
您可以做的是创建 一个实例,然后将 设置为开始时间:GregorianCalendar
Date
Date date;
Calendar myCal = new GregorianCalendar();
myCal.setTime(date);
但是,另一种方法是根本不使用。您可以使用如下方法:Date
private Calendar startTime;
private long duration;
private long startNanos; //Nano-second precision, could be less precise
...
this.startTime = Calendar.getInstance();
this.duration = 0;
this.startNanos = System.nanoTime();
public void setEndTime() {
this.duration = System.nanoTime() - this.startNanos;
}
public Calendar getStartTime() {
return this.startTime;
}
public long getDuration() {
return this.duration;
}
通过这种方式,您可以访问开始时间并获取从开始到停止的持续时间。当然,精度取决于您。
Calendar tCalendar = Calendar.getInstance();
tCalendar.setTime(date);
date 是一个 java.util.Date 对象。您也可以使用 Calendar.getInstance() 来获取 Calendar 实例(效率更高)。