4

我想计算一天中当前时间(2012 年 10 月 1 日上午 11 点)和同一天午夜的时间(2012 年 10 月 1 日晚上 11 点 59 分 59 秒)的时间差(以毫秒为单位)。

我试过这个

    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.SECOND, 59);
    cal.add(Calendar.HOUR, 23);
    cal.add(Calendar.MINUTE, 59);
        cal.getTime().getTime() - today.getTime();

今天是当前日期。

但是当我打印 cal 和 today 的长值时,86400 的时间差大约是一天。

4

2 回答 2

10

使用cal.set()代替cal.add()

Calendar cal = Calendar.getInstance();
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.HOUR, 23);
cal.set(Calendar.MINUTE, 59);

long diff = cal.getTime().getTime() - today.getTime();
于 2012-10-01T19:05:21.013 回答
5

您可以将日期设置为新创建的 Calendar 实例。然后使用它与当前实例进行比较getTimeInMillis()

Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.DATE, 1);
cal.set(Calendar.MONTH, 9);
cal.set(Calendar.YEAR, 2012);

long difference = cal.getTimeInMillis() - Calendar.getInstance().getTimeInMillis();
于 2012-10-01T19:07:43.773 回答