【问题标题】:Calculate the correct time with respect to time zone without daylight saving time在没有夏令时的情况下计算相对于时区的正确时间
【发布时间】:2018-05-10 12:42:36
【问题描述】:

目前,我使用方法来计算相对于时区的时间,如下所示

DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss-HH:mm").withZone(DateTimeZone.forID("America/Denver"));

DateTime f = fmt.parseDateTime("2014-09-20T20:00:33+07:00");

但它也会考虑夏令时来计算时间。
因此,任何人都有任何方法/解决方法来计算时间而不考虑 DST。(即我不想在计算的时间中添加 DST)。

【问题讨论】:

  • 您为什么要计算人工时间,就好像美国/丹佛没有切换到夏令时一样?实际相关性在哪里?

标签: java jodatime dst


【解决方案1】:

我仍然想知道您为什么要计算与实际无关的当地标准时间恕我直言,但好吧,给你:

DateTimeZone dtz = DateTimeZone.forID("America/Denver");
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZ").withZone(dtz);

DateTime f = fmt.parseDateTime("2014-09-20T20:00:33+07:00");
System.out.println("JODA-DT=" + f); // 2014-09-20T07:00:33.000-06:00
System.out.println("STD-OFFSET=" + dtz.getStandardOffset(f.getMillis()) / 3600000); // -7
f = f.withZone(DateTimeZone.forOffsetMillis(dtz.getStandardOffset(f.getMillis())));
System.out.println("Standard-time=" + f); // 2014-09-20T06:00:33.000-07:00

注意:我首先纠正了你错误的格式。

【讨论】:

  • 实际上,它是需要时间而不添加 DST 的需求的一部分。使用 DST 的时间会使分析实际时间更加混乱,谢谢。
猜你喜欢
  • 2011-04-10
  • 1970-01-01
  • 2017-07-11
  • 2015-07-31
  • 2016-02-01
  • 2013-12-09
  • 1970-01-01
  • 2011-09-30
  • 2019-09-06
相关资源
最近更新 更多