java - Java中将 "Fri, 02 Dec 2016 12:29:00 +0100"解析为OffsetDateTime

标签 java date parsing

当我尝试用 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

参见live code in IdeOne.com .

这个格式化程序似乎内置了英语。您的 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/

相关文章:

mysql - DateTimePicker.value 不会接受我传递给它的日期字符串 - vb.net

php - 在 PHP 中将数字转换为月份名称

java - 任何取消日期格式的简单方法?

Java:XML 转义特殊字符

java - Eclipse Debug模式查看实例变量值

java - HashSet1.retainAll(HashSet2); 如何实现在幕后工作?

java - 我在 Eclipse 中看不到命令​​窗口 - Java Android

java - 使用 SimpleDateFormat 将具有 GMT 时区的字符串解析为 Date

c# - C# 中的 Sip 解析器

java - apacheds 和 tomcat docker 容器之间的连接问题