目前,我使用方法计算时区的时间,如下所示
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)。
答案 0 :(得分: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
注意:我首先纠正了错误的格式模式。