gpt4 book ai didi

java - 解析时间戳包含时区到Date对象后,Date对象是否包含时区信息

转载 作者:行者123 更新时间:2023-12-01 08:47:53 25 4
gpt4 key购买 nike

如果我们有包含时区信息的时间戳,例如 2017-07-03T17:30:00-04:00,并将其解析为 java.Date 或 joda.DateTime。

它包含时区信息吗?我问这个是因为我想比较两个不同的日期实例。所以如果不包含时区信息,不同时区的日差就会出错

更新:我运行一个快速单元测试来验证,首先将日期实例转换为毫秒,并在减去这两个毫秒后转换回 TimeUnit。不同时区的时间不同

最佳答案

java.util.Date 和 Joda-Time 均已被 java.time 类取代。

您的输入字符串 2017-07-03T17:30:00-04:00 采用标准 ISO 8601 格式,并且末尾有一个相对于 UTC 的偏移量。 -04:00 表示该字符串代表比 UTC 晚四小时的时刻。

此偏移量不是时区。时区是特定区域的偏移历史记录。例如,America/BarbadosAmerica/New_York

将字符串解析为 java.time.OffsetDateTime 对象。

OffsetDateTime odt = OffsetDateTime.parse( "2017-07-03T17:30:00-04:00" );

odt.toString(): 2017-07-03T17:30:00-04:00

您可以通过调用方法IsEqualisBeforeisAfter来比较OffsetDateTime实例。

要查看 UTC 中的同一同步时刻,请提取即时

Instant instant = odt.toInstant() ;

instant.toString(): 2017-07-03T21:30:00Z

末尾的 ZZulu 的缩写,表示 UTC。

关于java - 解析时间戳包含时区到Date对象后,Date对象是否包含时区信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42565913/

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