Преобразование метки времени в дату приводит к ошибке времени вне диапазона

Я пытаюсь преобразовать метку времени в строку даты и времени ISO8601.

Например.

timestamp_as_iso8601_date=$(date --iso-8601=ns -d @1606982602015489365)

Временная метка довольно длинная, с точностью до наносекунд, и когда я использую полную временную метку, она возвращает следующую ошибку: date: time ‘1606982602015489365’ is out of range

Ожидаемый результат должен быть: 2020-12-03T09:03:22,015489300+01:00

Когда я сократил отметку времени до этого: 1606982612 ошибка исчезла, но я потерял информацию!

Есть ли способ преобразовать метку времени без потери информации о миллисекундах?

The expected result should be: 2020-12-03T09:03:32,000000000+01:00 ... without losing the milliseconds information? - ожидаемый результат все равно имеет нули.
KamilCuk 14.12.2020 18:52
date --iso-8601=ns -d @1606982602.015489365
Abelisto 14.12.2020 18:52
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
327
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вставьте запятую:

date --iso-8601=ns -d @1606982602.015489365

Это безопасный путь? Временные метки с точностью до наносекунды отличаются по длине или можно с уверенностью предположить, что длина всегда одинакова. Я спрашиваю об этом, потому что я прочитал эти метки времени из другого источника, и мне нужно было бы разделить все входящие метки времени на девятой цифре.

codlix 14.12.2020 19:12

Конечно, «метка времени», представленная в виде секунд с начала эпохи, будет «короче», когда дата будет закрыта для эпохи. Я имею в виду date --iso-8601=ns -d @1.123456789. Я не понимаю. Вы спрашиваете, как вставить цифру между 10-м и 9-м символом слева? Я бы a=1606982602015489365; sed 's/[0-9]\{9\}$/.&/' <<<"$a" но мне просто нравится sed, подойдет любой инструмент.

KamilCuk 14.12.2020 19:15

Другие вопросы по теме