Преобразование времени TAI в Java Instant
У меня есть доступ к времени TAI с секундами и нано секундами - позвольте мне просто назвать это T
,
Я хочу сейчас создать Java Instant
класс, соответствующий этому значению T
,
Я искал подходящих конструкторов, чтобы сделать это, но не повезло.
2 ответа
Я бы порекомендовал посмотреть или использовать код в библиотеке ThreeTen-Extra, который расширяет возможности TAI и UTC. Вот этот Javadoc.
TaiInstant tai = TaiInstant.ofTaiSeconds(taiSecs, taiNanos);
Instant instant = tai.toInstant();
Второй метод применяет преобразование UTC-SLS.
Если у вас есть доступ к элементам времени отдельно, вы можете сделать что-то вроде этого:
long millisecondsTime = 1262347200000l;
long nanoseconds = 10202;
Instant taiInstance = Instant.ofEpochMilli(millisecondsTime);
taiInstance = taiInstance.plus(Duration.ofNanos(nanoseconds));