1

我有这段代码:

public static final String DATE_PATTERN = "yyyy-MM-dd";

    OffsetDateTime.parse(startTime, DateTimeFormatter.ofPattern(DateFormat.DATE_PATTERN)

但是解析时出现此错误:

java.time.format.DateTimeParseException: Text '2019-07-10' could not be parsed: Unable to obtain OffsetDateTime from TemporalAccessor: {},ISO resolved to 2019-07-10 of type java.time.format.Parsed
4

2 回答 2

2

分区日期时间

在 ISO-8601 日历系统中具有时区的日期时间,例如 2007-12-03T10:15:30+01:00 Europe/Paris。

本地日期

ISO-8601 日历系统中没有时区的日期,例如 2007-12-03。

由于您的字符串只代表简单的日期,所以使用LocalDate

LocalDate date = LocalDate.parse(startTime, DateTimeFormatter.ISO_DATE);
于 2019-07-25T19:12:46.160 回答
1

问题是这些解析方法需要偏移字符串部分(+/-hh:mm),如果你想使用OffsetDateTime你需要添加那个部分,这里有一些例子:

OffsetDateTime date = OffsetDateTime.parse("2016-10-02T20:15:30+01:00",
                DateTimeFormatter.ISO_DATE_TIME);

如果你只想要那种格式,“yyyy-mm-dd”你只需要使用传统的LocalDate.parse

于 2019-07-25T19:18:30.650 回答