问题陈述:将“2014-11-02 01:00:15 EST”转换为GMT。
这似乎很容易。但是为什么下面的代码给出了错误的答案?
背景:
代码示例:
ZoneId gmt = ZoneId.of("GMT");
//String from = "2014-11-02 01:00:15 GMT-05:00";
String from = "2014-11-02 01:00:15 EST";
final DateTimeFormatter dateTimeFormatterone = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z");
ZnedDateTime zonedDateTime = ZonedDateTime.parse(from, dateTimeFormatterone);
ZonedDateTime gmtzonedDateTime = zonedDateTime.withZoneSameInstant(gmt);
String result = gmtzonedDateTime.format(dateTimeFormatterone);
这就是结果。
result == "2014-11-02 05:00:15 GMT"
不应该 结果==“2014-11-02 06:00:15 GMT”
任何帮助都会很棒。我认为这是Java中的一个错误。但我也认为我在某处犯了错误。
由于 保罗
答案 0 :(得分:0)
偏移的给定GMT缩写没有:
。变化
String from = "2014-11-02 01:00:15 GMT-05:00";
到
String from = "2014-11-02 01:00:15 GMT-0500";
还有一些逻辑错误:
如果你在2014年11月2日凌晨2点从2点到1点,那么从6点到5号也是正确的,早上5点是正确的吗?