Как в Диадоке изобрели эпоху :)

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

You can leave a response, or trackback from your own site.

Leave a Reply