Конвертер Unix-временных меток
Конвертация Unix-временных меток между секундами, миллисекундами, микросекундами и наносекундами
Ввод
Вывод
Документация
Что такое время Unix?
Время Unix (также называемое эпохой Unix или меткой времени POSIX) отсчитывает время с 00:00:00 UTC 1 января 1970 года. Разные системы используют разные единицы измерения: оболочки Unix, PHP и большинство баз данных используют секунды, JavaScript и Java — миллисекунды, time.time_ns() в Python, Go и InfluxDB поддерживают наносекунды, а многие инструменты трассировки и журналирования используют микросекунды. Один и тот же момент времени представлен как 1700000000 в секундах и 1700000000000000000 в наносекундах, поэтому ошибка в единице измерения смещает дату на тысячи лет.
Описание инструмента
Этот инструмент преобразует метку времени Unix между секундами, миллисекундами, микросекундами и наносекундами и показывает соответствующую дату. Вставьте метку времени — единица измерения будет определена по её длине, либо выберите единицу вручную. Каждое преобразование выполняется точно, включая метки времени в наносекундах, которые слишком велики для обычного числа JavaScript.
Возможности
- Преобразование между секундами, миллисекундами, микросекундами и наносекундами за один шаг
- Определение единицы измерения по количеству цифр или возможность выбрать её вручную
- Сохранение полной точности без ошибок округления, даже для 19-значных значений в наносекундах
- Поддержка дробных значений (
1700000000.123), отрицательных значений для дат до 1970 года и экспоненциальной записи (1.7e9) - Необязательный вывод целых чисел для API, ожидающих целые значения
- Отображение даты в формате ISO 8601 по UTC с точностью до наносекунд, а также в вашем местном часовом поясе
- Возможность скрыть поля микросекунд и наносекунд, если они вам не нужны
Как это работает
Метка времени считывается как точное десятичное число и сохраняется в виде целого количества наносекунд с использованием целых чисел произвольной точности вместо чисел с плавающей точкой. При выводе это значение делится на размер соответствующей единицы, после чего записывается точный результат, поэтому преобразование миллисекунд в секунды даёт 1700000000.123, а не округлённое значение. При включённой настройке «Только целые числа» результат округляется вниз до единицы, к которой он относится. Так же время Unix обрабатывает даты до 1970 года: -1.5 секунды превращаются в -2.
Если единица измерения определяется автоматически, инструмент предполагает дату в диапазоне с 1973 по 5138 год: значения длиной до 11 цифр считываются как секунды, от 12 до 14 цифр — как миллисекунды, от 15 до 17 — как микросекунды, а значения длиной 18 и более цифр — как наносекунды.
Советы
- Определение по длине не позволяет отличить короткие значения друг от друга, например метку времени в миллисекундах для даты до марта 1973 года от метки времени в секундах. Если дата выглядит неправильно, выберите единицу входного значения вручную.
- Кнопка «Сейчас» подставляет текущее время в используемой единице измерения. Браузеры предоставляют время только с точностью до миллисекунд, поэтому последние цифры значений в микросекундах и наносекундах будут нулевыми.
- Пробелы и символы подчёркивания во входных данных игнорируются, поэтому можно вставлять значения вроде
1_700_000_000.