Sun*_*nny 1 java datetime parseexception datetime-parsing
我的日期格式为“yyyy-MM-dd'T'HH:mm:ss.sssZ”。例如日期是“2018-07-17T09:59:51.312Z”。我正在使用下面的代码来解析 Java 中的字符串。
String date="2018-07-17T09:59:51.312Z";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sssZ");
Date transactionDateTime = simpleDateFormat.parse(date);
Run Code Online (Sandbox Code Playgroud)
这给了我“无法解析的日期:”异常。谁能告诉我如何做到这一点?
您应该考虑在此示例中使用DateTimeFormatter和ZonedDateTime。Date
并且SimpleDateFormat
是旧类,并且容易出错并且可能有问题;提到的较新的类(Java8+)更加健壮。
并将模式的结尾从 更改...mm:ss.sssZ
为...mm:ss.SSSz
。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSz");
ZonedDateTime zonedDateTime = ZonedDateTime.parse(date, formatter);
System.out.println(formatter.format(zonedDateTime));
Run Code Online (Sandbox Code Playgroud)
您还可以使用OffsetDateTime或Instant(信用:Ole VV),它们会为您解析,给出相同的输出:
System.out.println(OffsetDateTime.parse("2018-07-17T09:59:51.312Z"));
System.out.println(Instant.parse("2018-07-17T09:59:51.312Z"));
Run Code Online (Sandbox Code Playgroud)
输出:
2018-07-17T09:59:51.312Z
归档时间: |
|
查看次数: |
4056 次 |
最近记录: |