Unix timestamp: перевод в дату и обратно

Что такое Unix timestamp

Unix timestamp — число секунд, прошедших с 1 января 1970 года 00:00:00 по UTC. Момент записывается одним числом, без часового пояса и формата даты, поэтому timestamp удобно хранить в базе, передавать в API и сравнивать: больше число — позже момент. Даты до 1970 года записываются отрицательными числами.

JavaScript
Date.now()                   // 1793000000000 — миллисекунды
Math.floor(Date.now() / 1000) // 1793000000 — секунды

Одно и то же число показывает разное время в разных поясах: 1793000000 — это 07:33:20 по UTC и 10:33:20 по Москве. Поэтому при переводе в дату важен выбранный часовой пояс.

Как пользоваться

Вставьте число или дату — результат обновится сразу. Единицы числа определяются по длине: 10 цифр — секунды, 13 — миллисекунды, 16 — микросекунды, 19 — наносекунды. Если догадка неверна, выберите единицы в списке.

Дата с поясом (2026-10-26T09:30:00Z, +03:00) однозначна. Дата без пояса (2026-10-26 09:30, 26.10.2026 09:30) читается в выбранном часовом поясе — инструмент об этом предупреждает. Каждое значение в таблице копируется отдельной кнопкой. Выбор пояса запоминается в браузере.

Почему сутки не всегда равны 24 часам?

Число в секундах, миллисекундах, микро- или наносекундах; дата: 2026-10-26T09:30:00Z, 2026-10-26 09:30, 26.10.2026 09:30.
Для вывода даты и для дат без указанного пояса; смещение от UTC — на сегодня.

Вычисляем…

Дата и timestamp в разных записях
Unix, секунды
Unix, миллисекунды
ISO 8601, UTC
В выбранном поясе
ISO 8601 со смещением
По вашему времени
Заголовок HTTP
День недели
Относительно сейчас

Прибавить или отнять

В коде

Код

Разница между датами

Введите два значения — timestamp или даты.

Для перевода включите JavaScript. Пример: 1793000000 секунд — 26 октября 2026 года, 07:33:20 UTC.

Секунды или миллисекунды

Самая частая ошибка — перепутать единицы. JavaScript отдаёт миллисекунды, большинство серверных языков и баз данных — секунды. Если подставить секунды туда, где ждут миллисекунды, получится январь 1970 года; наоборот — дата в далёком будущем.

  • Миллисекунды: Date.now() и getTime() в JavaScript, System.currentTimeMillis() в Java.
  • Секунды: time() в PHP, time.time() в Python (с дробной частью), date +%s в Linux, UNIX_TIMESTAMP() в MySQL, поля exp и iat в токенах JWT.
  • Микро- и наносекунды: time.time_ns() в Python, time.Now().UnixNano() в Go, метки в журналах и системах трассировки.

Проблема 2038 года

Старые системы хранят timestamp в 32-битном знаковом целом. Его предел — 2147483647, то есть 19 января 2038 года, 03:14:07 по UTC. Секундой позже число переполняется и становится отрицательным — дата превращается в декабрь 1901 года. Современные системы используют 64-битные числа, но в старых базах, встроенных устройствах и форматах файлов ограничение ещё встречается. Инструмент предупреждает, если значение выходит за этот предел.

Вопросы и ответы

Зависит ли timestamp от часового пояса?

Нет: число одно для всего мира и всегда отсчитывается от полуночи 1 января 1970 года по UTC. Часовой пояс нужен только при переводе числа в дату и времени в число: «09:30» в Москве и в Берлине — разные моменты и разные timestamp.

Учитывает ли timestamp високосные секунды?

Нет. В Unix-времени в каждых сутках ровно 86 400 секунд; добавочная секунда, которую иногда вставляют в UTC, не получает отдельного значения. Для расчётов в приложениях это обычно незаметно.

Как получить дату из timestamp в JavaScript?

Передайте миллисекунды в new Date(): для секунд умножьте на 1000 — new Date(1793000000 * 1000). Метод toISOString() вернёт дату в UTC, а toLocaleString('ru-RU', { timeZone: 'Europe/Moscow' }) — в нужном поясе.

Связанные материалы

Объект Date подробно описан в справочнике JavaScript. Время в токенах авторизации показывает «Декодер JWT», расписания задач расшифровывает «Расписание cron».