gpt4 book ai didi

java - 解析 ISO-8601 日期时间

转载 作者:行者123 更新时间:2023-12-02 09:02:41 25 4
gpt4 key购买 nike

在 Java 中解析 ISO-8601 的时间戳的正确形式看起来是这样的:

“2020-02-03T23:40:17+00:00”;

但是我的看起来像:

“2020-02-03T23:40:17+0000”;

如何正确解析它?

import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;

public class TestTime {
public static void main(String[] args) {

String ts = "2020-02-03T23:40:17+0000";
DateTimeFormatter timeFormatter = DateTimeFormatter.ISO_DATE_TIME;
OffsetDateTime offsetDateTime = OffsetDateTime.parse(ts, timeFormatter);
long timestamp = offsetDateTime.toEpochSecond() * 1000;

}
}

最佳答案

您可以将模式传递给 DateTimeFormatter:

String ts = "2020-02-03T23:40:17+0000";
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssZZZ");
OffsetDateTime offsetDateTime = OffsetDateTime.parse(ts, timeFormatter);
<小时/>

请注意,偏移量的正确模式是 ZZZ,而不是 XXXXX,这在例如格式化将日期时间解析回字符串:

DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX");
OffsetDateTime offsetDateTime = OffsetDateTime.parse(ts, timeFormatter);
System.out.println(offsetDateTime.format(timeFormatter));
2020-02-03T23:40:17Z

当使用ZZZ时,其格式将类似于2020-02-03T23:40:17+0000。请参阅documentation对于DateTimeFormatter

关于java - 解析 ISO-8601 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60048735/

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