我正在尝试使用Java OffsetDateTime
解析日期字符串,但出现异常。
字符串如下:"20101217180000GMT+0800"
我的方法如下:
OffsetDateTime.parse("20101217180000GMT+0800", DateTimeFormatter("yyyyMMddHHmmssz"));
我得到:
java.time.format.DateTimeParseException:....在索引17处找到未分析的文本
有什么想法吗? :)
答案 0 :(得分:3)
您在那里基本上有两个区域说明符:
GMT
+0800
如果您打印从索引17开始的时间的子字符串,错误发生的位置,您将得到+0800
,因此它消耗了GMT
并且不知道该怎么做其余的。
我建议将GMT
当作文字,即用单引号引起来,然后使用Z
(或X
,这取决于您要如何使用GMT + 0(如果有)):
yyyyMMddHHmmss'GMT'Z
答案 1 :(得分:1)
请尝试
OffsetDateTime.parse("20101217180000GMT+0800",DateTimeFormatter.ofPattern("yyyyMMddHHmmsszx"));
这可能有效。 但是我在考虑区域冲突和抵消冲突。