【发布时间】:2016-03-16 22:32:00
【问题描述】:
我有以毫秒为单位计算两个日期之间时间差的函数。我在 1 小时的夏令时开始之前得到时间,然后在 5 分钟后计算时间。我给了我 5 分钟的差异,一小时被跳过。有人知道吗?
【问题讨论】:
-
能否请您提供您的代码和输入日期,以及您的实际和预期输出?
标签: java android simpledateformat datetime-format
我有以毫秒为单位计算两个日期之间时间差的函数。我在 1 小时的夏令时开始之前得到时间,然后在 5 分钟后计算时间。我给了我 5 分钟的差异,一小时被跳过。有人知道吗?
【问题讨论】:
标签: java android simpledateformat datetime-format
就用这个吧:
假设 date1 是 20.03.2016, 13:00 date2 是 21.03.2016, 17:00
Calendar cal1 = Calendar.getInstance();
cal1.set(Hour_of_day,13);
cal1.set(Calendar.DAY_OF_MONTH, 20);
Calendar cal2 = Calendar.getInstance();
cal2.set(Hour_of_day,17);
cal2.set(Calendar.DAY_OF_MONTH, 21);
然后两个差以毫秒为单位。
long time_in_milli = cal2.getTimeInMillis()-cal1.getTimeInMillis();
这已经考虑到夏令时了。
【讨论】:
我通过在日期 ex 中包含时区来解决这个问题:使用时区格式化您的日期,例如 -“yyyy-MM-dd'T'HH:mm:ss.SSSZ”,然后计算时差。
【讨论】: