gpt4 book ai didi

Java 时区从 EDT 到 EST 的过渡期

转载 作者:太空宇宙 更新时间:2023-11-04 14:26:42 24 4
gpt4 key购买 nike

问题陈述:将“2014-11-02 01:00:15 EST”转换为 GMT。

这看起来很简单。但为什么下面的代码给出了错误的答案?

背景:

  • EDT 又名 GMT-4
  • EST 又名 GMT-5
  • 2014-11-02 01:00:15 美国东部时间 == 2014-11-02 06:00:15 GMT
  • 如果我使用注释掉的日期字符串,它就可以工作!!!
  • 美国东部夏令时间(截至 2014 年 11 月 2 日凌晨 2 点)-> 凌晨 2 点,我们前往美国东部时间凌晨 1 点

代码示例:

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 中的一个错误。但我也认为我在某个地方犯了错误。

谢谢保罗

最佳答案

给定的 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 点也是正确的吗?

关于Java 时区从 EDT 到 EST 的过渡期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26596946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com