gpt4 book ai didi

java - ZonedDateTime 解析成功但输出字符串不同

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:41:26 24 4
gpt4 key购买 nike

我正在使用 ZonedDateTime 根据时区解析和获取当前时间。

当我解析以下String 时,解析成功但输出String 不同。这是为什么?

String dateTimeString = "2016-05-04T12:58:22+01:00[Europe/Paris]";
ZonedDateTime dateTime = ZonedDateTime.parse(dateTimeString, ISO_ZONED_DATE_TIME);
System.out.println(dateTimeString);
System.out.println(dateTime.toString());

输出

2016-05-04T12:58:22+01:00[Europe/Paris]
2016-05-04T12:58:22+02:00[Europe/Paris]

它是在什么时候决定将 +1 更改为 +2 的,为什么没有抛出异常?

我知道括号 [Europe/Paris] 中的参数是可选的,但在这里它优先于偏移量。

另一方面是下面的代码

String dateTimeString = "2016-05-04T12:58:22+01:00";
ZonedDateTime dateTime = ZonedDateTime.parse(dateTimeString, ISO_ZONED_DATE_TIME);
System.out.println(dateTimeString);
System.out.println(dateTime.toString());

产生输出

2016-05-04T12:58:22+01:00
2016-05-04T12:58:22+01:00

最佳答案

问题是,2016-05-04T12:58:22+01:00[Europe/Paris] 不是正确的时间,因为我们有 CEST(中欧夏令时,夏令时节省时间)在五月,从三月的最后一个星期日开始。与 UTC 相比 +2h。所以确实 2016-05-04T12:58:22+02:00[Europe/Paris] 是正确的。

如您所说,[Europe/Paris] 似乎优先。不确定规范是否应该有异常(exception),但我对此表示怀疑。

换句话说,2016-05-04T12:58:22+01:00不能在时区Europe/Paris

关于java - ZonedDateTime 解析成功但输出字符串不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37067772/

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