【发布时间】:2016-07-19 11:15:16
【问题描述】:
我有日期字符串“2015-01-12T13:00:00.000+02:00”。 查看 JavaDoc,我看到以下内容:
z time-zone name zone-name Pacific Standard Time; PST Z zone-offset offset-Z +0000; -0800; -08:00;
所以我怀疑要解析它,我必须使用大写的“Z”,因为我有 +02:00 中给出的区域格式:
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.000Z");
但是我得到一个解析错误。
如果我使用小写的“z”,它可以工作:
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.000z")
有谁知道怎么回事?
代码:
DateTimeFormatter changetimeParser_Z = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.000Z");
DateTimeFormatter changetimeParser_z = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.000z");
String time = "2015-01-12T13:00:00.000+02:00";
ZonedDateTime time1 = ZonedDateTime.parse(time, changetimeParser_z);
System.out.println(time1);
ZonedDateTime time2 = ZonedDateTime.parse(time, changetimeParser_Z);
System.out.println(time2);
异常堆栈跟踪:
2015-01-12T13:00+02:00
java.time.format.DateTimeParseException: Text '2015-01-12T13:00:00.000+02:00' could not be parsed at index 23
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.ZonedDateTime.parse(ZonedDateTime.java:597)
【问题讨论】:
-
输入是什么?代码是什么?什么是完整的错误堆栈跟踪?
-
不要在 cmets 中发布。编辑您的问题。
-
试试
X而不是Z -
我不使用 X。但它适用于 z,问题是它为什么这样做。
标签: java datetime-format zoneddatetime