考虑夏令时如何计算时差?
How to calculate time difference considering day light saving?
我有一个函数可以计算两个日期之间的时间差(以毫秒为单位)。我在夏令时开始前 1 小时获取时间,然后在 5 分钟后计算时间。我给我 5 分钟的差异,一个小时被跳过。有人知道吗?
就用这个:
假设日期 1 是 2016 年 3 月 20 日,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();
这已经考虑到夏令时了。
我通过在日期中包含时区来解决这个问题,例如:使用时区格式化日期,例如 - "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 然后计算时差。
我有一个函数可以计算两个日期之间的时间差(以毫秒为单位)。我在夏令时开始前 1 小时获取时间,然后在 5 分钟后计算时间。我给我 5 分钟的差异,一个小时被跳过。有人知道吗?
就用这个:
假设日期 1 是 2016 年 3 月 20 日,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();
这已经考虑到夏令时了。
我通过在日期中包含时区来解决这个问题,例如:使用时区格式化日期,例如 - "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 然后计算时差。