有没有人知道如何使用ZonedDateTime解析这种日期格式。 2017-03-26T06:06:09.000 + 0000
private static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.zzz+zzz";
public void converDate()
{
String dateInString = "2017-03-26T06:06:09.000+0000";
ZonedDateTime ldt = ZonedDateTime.parse(dateInString, DateTimeFormatter.ofPattern(DATE_FORMAT));
System.out.println(ldt.toString());
}
我有这个代码,但这给了一个例外。无法解析。我没有DateFormatter正确。
有谁知道如何使用Formatter。
答案 0 :(得分:1)
datetimeformat应为yyyy-MM-dd'T'HH:mm:ss.SSSZ
秒分数978
Z zone-offset offset-Z +0000; -0800; -08:00;
https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
的详细信息答案 1 :(得分:0)
在你的模式中,而不是使用'S'来解析你使用'z'的秒数。 'z'用于时区名称。 请参阅javadoc DateTimeFormatter
正确的模式是“”yyyy-MM-dd'T'HH:mm:ss.SSS + SSSS“并且创建需要传递zoneId的DateTimeFormatter。
这是工作代码:
private static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS+SSSS";
public void converDate(){
String dateInString = "2017-03-26T06:06:09.000+0000";
ZonedDateTime ldt = ZonedDateTime.parse(dateInString, DateTimeFormatter.ofPattern(DATE_FORMAT).withZone(ZoneId.of("Europe/Berlin")));
System.out.println(ldt.toString());
}