首页 > 解决方案 > java.time.format.DateTimeParseException 使用 DateTimeFormatter

问题描述

我有这个代码:

DateTimeFormatter formatter = new DateTimeFormatterBuilder()
        .appendPattern(DateType.DATE_FORMAT)
        .appendOffset("+HH:mm", "+00:00")
        .toFormatter();
ZonedDateTime.parse("2018-06-09T14:09:30.020+03:00[Europe/Tallinn]", formatter);

DateType.java

public class DateType {

    public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
    public static final String DATE_TIME_ZONE_FORMAT = DATE_FORMAT + "XXX";
}

但是,我运行这段代码,我有错误:

java.time.format.DateTimeParseException: Text '2018-06-09T14:09:30.020+03:00[Europe/Tallinn]' could not be parsed at index 10

据我了解,这是因为格式化程序。有什么问题?

标签: javadatetimejava-timedatetime-parsingzoneddatetime

解决方案


我想知道你为什么不尝试默认解析器。我认为它按预期工作。

String dateTime = "2018-06-09T14:09:30.020+03:00[Europe/Tallinn]";
ZonedDateTime z = ZonedDateTime.parse(dateTime);
System.out.println(z);

推荐阅读