使用 OpenCsv 解析 Instant
Parsing Instant using OpenCsv
我正在尝试以这种方式使用 OpenCsv 从 CSV 解析 Instant:
@CsvDate("yyyy-MM-dd hh:mm:ss")
@CsvBindByName(column = "date")
private Instant date;
我知道 OpenCsv 应该支持 java.time
。
但是在尝试使用它时出现以下异常:
Error parsing CSV line: 8.
...
Caused by: java.time.format.DateTimeParseException: Text '2022-04-21 00:00:00' could not be parsed: Unable to obtain Instant from TemporalAccessor: {HourOfAmPm=0, MicroOfSecond=0, NanoOfSecond=0, MilliOfSecond=0, MinuteOfHour=0, SecondOfMinute=0},ISO resolved to 2022-04-21 of type java.time.format.Parsed
...
Caused by: java.time.DateTimeException: Unable to obtain Instant from TemporalAccessor: {HourOfAmPm=0, MicroOfSecond=0, NanoOfSecond=0, MilliOfSecond=0, MinuteOfHour=0, SecondOfMinute=0},ISO resolved to 2022-04-21 of type java.time.format.Parsed
...
Caused by: java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: InstantSeconds
根据我的调查,根本原因是缺少时区,但我的问题是如何仅使用注释指定时区?
参见DateTimeFormatter。它应该是 HH
24 小时时间 (0-23) i.o。 hh
12 小时时间 (1-12)。该错误是由小时“00”引起的。还好,不然就只有上半天了
参见 h、k、H 和 K。
class Instant
不使用秒之类的单位,内部比较长。使用 LocalDateTime
作为您的格式。
我正在尝试以这种方式使用 OpenCsv 从 CSV 解析 Instant:
@CsvDate("yyyy-MM-dd hh:mm:ss")
@CsvBindByName(column = "date")
private Instant date;
我知道 OpenCsv 应该支持 java.time
。
但是在尝试使用它时出现以下异常:
Error parsing CSV line: 8.
...
Caused by: java.time.format.DateTimeParseException: Text '2022-04-21 00:00:00' could not be parsed: Unable to obtain Instant from TemporalAccessor: {HourOfAmPm=0, MicroOfSecond=0, NanoOfSecond=0, MilliOfSecond=0, MinuteOfHour=0, SecondOfMinute=0},ISO resolved to 2022-04-21 of type java.time.format.Parsed
...
Caused by: java.time.DateTimeException: Unable to obtain Instant from TemporalAccessor: {HourOfAmPm=0, MicroOfSecond=0, NanoOfSecond=0, MilliOfSecond=0, MinuteOfHour=0, SecondOfMinute=0},ISO resolved to 2022-04-21 of type java.time.format.Parsed
...
Caused by: java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: InstantSeconds
根据我的调查,根本原因是缺少时区,但我的问题是如何仅使用注释指定时区?
参见DateTimeFormatter。它应该是 HH
24 小时时间 (0-23) i.o。 hh
12 小时时间 (1-12)。该错误是由小时“00”引起的。还好,不然就只有上半天了
参见 h、k、H 和 K。
class Instant
不使用秒之类的单位,内部比较长。使用 LocalDateTime
作为您的格式。