当前位置: 首页 > 面试题库 >

日历对象的日期[Java]

江德海
2023-03-14
问题内容

我有一个电影课,里面有开始日期,持续时间和结束日期。开始和停止日期是日期对象(私有日期startDate
…)(这是一个分配,因此我无法更改),现在我想通过将持续时间(以分钟为单位)添加到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对象显示日期。 ...和... 我面临的问题是,为什么以下输出中的出生日期会给我一条未知的、荒谬的长线: ID员工编号:123 员工姓名:明武 出生日期:java.util.GregorianCalendar[time=?, areFieldsSet=false, areAllFieldsSet=true, lenient=true, zone=sun.util.cale

  • 问题内容: 我有一个创建日期或对象的日期的表示形式。我已经通过看和,但没有发现任何可以比创建我自己的丑陋的解析方法做其他。我知道一定有办法,有人知道解决方案吗? 问题答案: 简单来说: 有关更多信息,请参见。 并将其转换为,请执行以下操作:

  • 当创建日历对象并使用SimpleDataFormat解析字符串来设置日期/时间时,是否可以在两行单独的代码中设置日期和时间?例如,在我的SQLite数据库中,日期(mm-dd-yyy)与时间(hh:mm)存储在一个单独的列中。做以下事情是否符合犹太教 第二个是卡尔。setTime line是否将日历对象的日期部分重置为现在,然后只更改时间?

  • 结果应该是-1或1的int值,其中我的情况应该是:-1。 然而,这不是我想要的结果。我想能够比较日期直接说: 是否有一些基于日历库来实现这一点的方法?

  • 我正在寻找确切的开始和结束日期根据我们的桌面日历,如果我给周,年作为输入。但是上面的代码给出的输出是2009年1月27日星期日。我知道这是因为按照我们的说法,一周的第一天默认是星期天,但我需要按照桌面日历

  • 问题内容: 如何在python中将字符串转换为日期对象? 该字符串是:(对应于格式:) 我不想要datetime.datetime对象,而是想要datetime.date。 问题答案: 您可以在Python包中使用: