例如,我对在Java语言中同时包含ZoneId和ZoneOffset的可能性感到有点困惑,日期2020-01-01'T'00:00:00+01:00[UTC-8]有意义吗?现在是协调世界时的几点?它是UTC-8时区的+01:00偏移量,因此与2020-01-01'T'00:00:00[UTC-7]相同吗
发布于 2020-07-16 03:12:32
没有2020-01-01'T'00:00:00+01:00[UTC-8]是自相矛盾的。我怀疑有没有一种方法可以构造一个具有这个值的ZonedDateTime。或者仅通过定义您自己的时区,该时区在该时间点的ID为UTC-8,偏移为+01:00。
ZonedDateTime同时具有时区和偏移量。
我不确定它是否与你的问题相关,但研究我们是否可以从自相矛盾的字符串中找出时间点的一种方法可能是:
System.out.println(ZonedDateTime.parse("2020-01-01T00:00:00+01:00[Pacific/Pitcairn]"));Java 11上的输出:
2019-12-31T15:00-08:00太平洋/皮特凯恩
皮特凯恩全年的偏移量为-08:00。看起来ZonedDateTime选择了信任偏移量+01:00,所以时间和2019-12-31T23:00一样。然后,它将此时间转换为根据时区数据库为太平洋/皮特凯恩时区找到的偏移量,得出该时区的15:00。
编辑:
现在是协调世界时的几点?它是
UTC-8时区的+01:00偏移量,所以它与2020-01-01'T'00:00:00[UTC-7]相同吗?
不,这完全不一样。2020-01-01'T'00:00:00[UTC-7]将与协调世界时2020-01-01T07:00:00的时间点相同,但正如我所说,我们在协调世界时得到2019-12-31T23:00,比您建议的时间早了8个小时。-08:00不用于解释时间点,它们仅用于转换。
PS在2020-01-01T00:00:00+01:00[UTC-8]中没有任何单引号。它们的格式模式只能用于打印和/或解析这样的字符串。
https://stackoverflow.com/questions/62921789
复制相似问题