【发布时间】:2018-09-13 15:31:25
【问题描述】:
对于如下日期字符串,是否存在有效的 joda DateTimeFormat:
2018 年 7 月 23 日星期一 07:08:26 +0300 GMT
我试过了:
DateTimeFormatter FMT1 = DateTimeFormat.forPattern("E, d MMM yyyy HH:mm:ss Z");
DateTimeFormatter FMT2 = DateTimeFormat.forPattern("E, d MMM yyyy HH:mm:ss z");
DateTimeFormatter FMT3 = DateTimeFormat.forPattern("E, d MMM yyyy HH:mm:ss z Z");
但这些都不起作用。 我在这里查看了https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html,我想不出一种方法来解析该日期而不必先更改字符串本身。 有什么办法吗?
【问题讨论】:
-
我在 Joda 中找不到这种模式。如果您可以使用 java.time.format.DateTimeFormatter,则该模式有一个标准模式:RFC_1123_DATE_TIME。见这里docs.oracle.com/javase/8/docs/api/java/time/format/…
-
@rick 有两个(冲突的)偏移量
+0300和GMT与RFC_1123_DATE_TIME不完全匹配。 -
那是偏移不冲突。从文档中打开格式的描述,你会看到docs.oracle.com/javase/8/docs/api/java/time/format/…
-
@rick 我尝试使用该格式化程序解析字符串,但由于未解析文本而出现异常,指向
+0300和GMT之间的空格。你是对的,它很接近。也足够接近,您可以使用该格式化程序,您只需要以一种您不坚持解析整个字符串的方式进行解析(我认为这有点 hack)。