当我尝试用 Java 解析以下字符串时,我有点卡住了
Fri, 02 Dec 2016 12:29:00 +0100
我使用 OffsetDateTime 的方法如下:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E, dd MMM yyyy HH:mm:ss xx");
OffsetDateTime time = OffsetDateTime.parse(dateString, formatter);
其中“dateString”是上面的字符串。 我错过了什么吗?
感谢您的回答。
最佳答案
使用预定义的格式化程序
DateTimeFormatter
类为该输入字符串提供一个常量实例。该字符串格式由 RFC 1123 定义。 。使用常数DateTimeFormatter.RFC_1123_DATE_TIME
.
String input = "Fri, 02 Dec 2016 12:29:00 +0100";
OffsetDateTime odt = OffsetDateTime.parse ( input , DateTimeFormatter.RFC_1123_DATE_TIME );
odt.toString(): 2016-12-02T12:29+01:00
这个格式化程序似乎内置了英语。您的 JVM 当前的默认Locale
是无关紧要的。在上述代码中添加诸如 Locale.setDefault ( Locale.CANADA_FRENCH );
之类的行没有任何影响。因此,虽然上面的注释给出了始终指定 Locale
而不是隐式依赖当前默认值的好建议,但这个特定的格式化程序是一个异常(exception)。
关于java - Java中将 "Fri, 02 Dec 2016 12:29:00 +0100"解析为OffsetDateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41247625/