Если покопаться в АПИ diadok sdk, то обнаружишь, что часть дат (пример: https://diadoc-sdk.readthedocs.io/ru/latest/proto/Message.html поля TimestampTicks и LastPatchTimestampTicks) представлена в виде timestamp. Но отсчитывется он вовсе не с 1970 года. Интересно, для чего это могло понадобиться? У них хранятся даты событий до общепринятого начала эпохи?
Как вы понимаете, вопрос был риторический. А вот пример того, как из чисел в этих полях получить читаемые даты:
public static ZonedDateTime getZDTforTimestamp(long timestamp) { ZonedDateTime zdt = ZonedDateTime.of(1, 1, 1, 0, 0, 0, 0, ZoneId.of("UTC")); return zdt.plus(timestamp/10, MICROS); } |
Показано для ZonedDateTime, так как тут упоминается пояс UTC https://diadoc-sdk.readthedocs.io/ru/latest/proto/Timestamp.html Как можно ссылаться на UTC и при это писать: «Структура представляет некоторый момент времени, не привязанный к часовому поясу.»?
Аналогичным образом можно получить LocalDateTime.