Я получаю дату в формате "yyyy-MM-dd'T'HH: mm: ss.SSSXXX" из ввода JSON, который преобразуется в DTO самим Spring. Но при преобразовании в экземпляр OffsetDateTime
это приводит к потере информации о смещении в созданном экземпляре OffsetDateTime. Например, мы передаем следующее в Postman'е, вызывающем API, это приводит к синтаксическому анализу и созданию объекта, но объект не имеет установленного смещения.
Ниже приведен пример даты "2019-03-21T06:43:56.235+11:00"
, когда она анализируется, она приводит к дате с экземпляром OffsetDateTime, но в качестве смещения не указывается +11:00
. Когда я непосредственно анализирую эту строку, используя DateTimeFormatter
, я могу получить заполненное смещение.
ниже код, который использует DateTimeFormatter
.
OffsetDateTime.parse(offSetDateTimeString, DateTimeFormatter.ofPattern(DATE_PATTERN))
DATE_PATTER = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
.
Пожалуйста, руководство.
Спасибо.
UPDATE
В моем DO есть следующие объекты:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
// THis won't work as it doesn't support timestamp.
// @Column(columnDefinition = "TIMESTAMP WITH TIME ZONE")
// private LocalDateTime localDateTime;
@Column(columnDefinition = "TIMESTAMP WITH TIME ZONE")
private ZonedDateTime zonedDateTime;
@Column(columnDefinition = "TIMESTAMP WITH TIME ZONE")
private OffsetDateTime offSetDateTime;
Хотя DTO также имеет те же поля с теми же типами данных.