我想将以下时间字符串解析为java.time
:
OffsetDateTime.parse("00:00:00.000+02:00", DateTimeFormatter.ISO_OFFSET_TIME);
结果:
java.time.format.DateTimeParseException: Text '00:00:00.000+02:00' could not be parsed: Unable to obtain OffsetDateTime from TemporalAccessor: {OffsetSeconds=7200},ISO resolved to 00:00 of type java.time.format.Parsed
at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1918)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1853)
at java.time.OffsetDateTime.parse(OffsetDateTime.java:402)
那么我怎么能解析这个时间,如果不是这样的话呢?
答案 0 :(得分:4)
带有偏移量的日期时间的不可变表示。 此类存储所有日期和时间字段,精度为纳秒,以及与UTC / Greenwich的偏移量。
但您正在尝试解析没有日期部分的日期字符串
"00:00:00.000+02:00"
解析无法从中提取日期,因此失败。
您似乎想要使用OffsetTime
此类存储所有时间字段,精度为纳秒,如 以及区域偏移。
如果您有OffsetDateTime
,LocalDate
,则可以将其转换为OffsetTime#atDate
。