我有解析以下日期格式问题:DateTimeFormatter无法解析由自身产生串
2017-03-27T08:27:43.326TGMT-05:00
我有代码,其中DateTimeFormatter
产生串出的ZonedDateTime
,并作为下一步我试图再次解析字符串,创建ZonedDateTime
实例,但是如我所料不工作:
String pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'T'ZZZZ";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
String dateStr = ZonedDateTime.now().format(formatter);
System.out.println(dateStr);
ZonedDateTime dateParsed = ZonedDateTime.parse(dateStr, formatter);
System.out.println(dateParsed);
上面的代码产生:
2017-03-27T08:27:43.326TGMT-05:00
java.time.format.DateTimeParseException: Text '2017-03-27T08:27:43.326TGMT-05:00' could not be parsed: String index out of range: 33
at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1920)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1855)
寻找任何见解如何拿出工作模式,它能够创造ZonedDateTime
实例出来的2017-03-27T08:27:43.326TGMT-05:00
改变你的模式为:'String pattern =“yyyy-MM-dd'T'HH:mm:ss.SSS'T'ZZZZZ”;'(一个Z更多),它的工作原理 – Jens
似乎也适用于刚三个Zs。 –
@BrianClapper,但是三个Z会导致输出与OP有'.512T-0500'而不是'.512TGMT-05:00' –