日历对象到日历

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (9)

我有一个班级电影,我有一个开始日期,持续时间和停止日期。开始和结束日期是日期对象(私人日期startDate ...)(这是一个任务,所以我不能改变这一点)现在我想自动计算stopDate通过添加持续时间(以分钟为单位)startDate。

据我所知,使用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实例(效率更高)。

扫码关注云+社区