【问题标题】:How to calculate time difference considering day light saving?考虑夏令时如何计算时差?
【发布时间】:2016-03-16 22:32:00
【问题描述】:

我有以毫秒为单位计算两个日期之间时间差的函数。我在 1 小时的夏令时开始之前得到时间,然后在 5 分钟后计算时间。我给了我 5 分钟的差异,一小时被跳过。有人知道吗?

【问题讨论】:

  • 能否请您提供您的代码和输入日期,以及您的实际和预期输出?

标签: java android simpledateformat datetime-format


【解决方案1】:

就用这个吧:

假设 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();

这已经考虑到夏令时了。

【讨论】:

    【解决方案2】:

    我通过在日期 ex 中包含时区来解决这个问题:使用时区格式化您的日期,例如 -“yyyy-MM-dd'T'HH:mm:ss.SSSZ”,然后计算时差。

    【讨论】:

      猜你喜欢
      • 2010-10-23
      • 1970-01-01
      • 2011-08-14
      • 2013-09-22
      • 1970-01-01
      • 2011-07-25
      • 2018-01-01
      • 2012-07-03
      • 1970-01-01
      相关资源
      最近更新 更多