Корда: Как сохранить переменную состояния Instant в формате UT C в базе данных Valult? - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть состояние контракта с переменной типа Instant, которая представляет значение UT C. Но когда PersistentState сохраняет его в БД, значение DATETIME в БД представляет собой локальное время даты вместо UT C. Может ли кто-нибудь помочь мне иметь значение БД как UT C? Спасибо.

\ Шон

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Вот решение - 1. val theUT C = OffsetDateTime.now (ZoneOffset.UT C) 2. В схеме @Column (name = "entryDateTime") val entryDateTime: LocalDateTime 3. В generateMappedObject, this.theUT C .toLocalDateTime ()

0 голосов
/ 04 февраля 2020
  1. Вместо Instant используйте:
private final OffsetDateTime txTimestamp;
В вашей пользовательской схеме:
@Column(name = "tx_timestamp") private final String txTimestamp;
В вашем штате generateMappedObject Pass:
this.txTimestamp.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
Также, если у вас есть API, я использовал это в своем RequestModelMapper объекте:
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private OffsetDateTime txTimestamp;
...