
Если покопаться в АПИ 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);
} |
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.