将带有偏移字符串的日期时间解析为 LocalDateTime
Parse datetime with offset string to LocalDateTime
我正在尝试将以下日期时间字符串解析为 LocalDateTimeObject,但是我无法识别日期时间字符串的格式。
Sat, 09 Oct 2021 02:10:23 -0400
String s = "Sat, 09 Oct 2021 02:10:23 -0400";
DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
LocalDateTime dateTime = LocalDateTime.parse(s, formatter);
System.out.println(dateTime);
如何确定上述字符串的模式?
您应该首先检查日期字符串是否匹配任何 Predefined Formatters。
如果没有,那么您必须使用 .ofPattern(String pattern)
或 .ofPattern(String pattern, Locale locale)
创建自己的 Formatter
。为此,您可以在 格式和解析模式 .
部分查看所有已定义的模式字母 here
对于您的示例,您可以使用 DateTimeFormatter.RFC_1123_DATE_TIME
:
DateTimeFormatter formatter = DateTimeFormatter.RFC_1123_DATE_TIME;
OffsetDateTime dateTime = OffsetDateTime.parse(s, formatted);
或:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss Z");
OffsetDateTime dateTime = OffsetDateTime.parse(s, formatted);
请注意,OffsetDateTime
用于表示与 UTC 有偏差的日期时间。
Symbol Meaning
------ -------
E day-of-week
d day-of-month
M month-of-year
y year-of-era
H hour-of-day (0-23)
m minute-of-hour
s second-of-minute
Z zone-offset
我正在尝试将以下日期时间字符串解析为 LocalDateTimeObject,但是我无法识别日期时间字符串的格式。
Sat, 09 Oct 2021 02:10:23 -0400
String s = "Sat, 09 Oct 2021 02:10:23 -0400";
DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
LocalDateTime dateTime = LocalDateTime.parse(s, formatter);
System.out.println(dateTime);
如何确定上述字符串的模式?
您应该首先检查日期字符串是否匹配任何 Predefined Formatters。
如果没有,那么您必须使用 .ofPattern(String pattern)
或 .ofPattern(String pattern, Locale locale)
创建自己的 Formatter
。为此,您可以在 格式和解析模式 .
对于您的示例,您可以使用 DateTimeFormatter.RFC_1123_DATE_TIME
:
DateTimeFormatter formatter = DateTimeFormatter.RFC_1123_DATE_TIME;
OffsetDateTime dateTime = OffsetDateTime.parse(s, formatted);
或:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss Z");
OffsetDateTime dateTime = OffsetDateTime.parse(s, formatted);
请注意,OffsetDateTime
用于表示与 UTC 有偏差的日期时间。
Symbol Meaning
------ -------
E day-of-week
d day-of-month
M month-of-year
y year-of-era
H hour-of-day (0-23)
m minute-of-hour
s second-of-minute
Z zone-offset