Секунды vs миллисекунды
1777118400
1777118400000
Оба числа описывают один и тот же момент, если первое читать как секунды, а второе - как миллисекунды. Их путаница - самый частый баг с таймстампами.
Преобразуйте между Unix-таймстампами, ISO 8601, UTC и локальным временем.
Последнее обновление
178073252317807325230002026-06-06T07:55:23.000Z2026-06-06 07:55:23Sat, 06 Jun 2026 07:55:23 GMTКонвертер Unix-таймстампов превращает *epoch-время* - одно число, обозначающее момент во времени, - в человекочитаемую дату и наоборот. Разработчик встречает таймстампы повсюду: в колонках БД, строках логов, ответах API, аналитических событиях, в claim'е exp у JWT, триггерах планировщиков и заголовках кеша.
Идея простая: компьютеры хранят время как число (секунды или миллисекунды с 1970-01-01 00:00:00 UTC), а человеку нужны календарь, часовой пояс и привычный формат. Конвертация туда-обратно - одна из самых частых задач при отладке веб- и мобильных приложений.
Главная путаница - *единицы измерения*. POSIX и большинство бэкенд-языков работают в секундах. JavaScript, Java и многие брокеры сообщений - в миллисекундах. В системах метрик встречаются микросекунды и наносекунды. 10-значное число - почти всегда секунды, 13-значное - почти всегда миллисекунды.
1970-01-01 00:00:00 UTC).2026-04-25T12:00:00Z) - переносимый текстовый формат. Завершающий Z (или +00:00) означает UTC; смещение вида +02:00 - это локальное время на 2 часа впереди UTC.Вставьте число (секунды или миллисекунды) либо строку с датой. Конвертер сам определит формат по длине и виду значения.
Если автоопределение ошиблось - переключите секунды/миллисекунды вручную. 10 цифр - это секунды, 13 цифр - миллисекунды.
На выходе будет ISO 8601 в UTC, ваше локальное время и человеческая относительная фраза (3 часа назад, через 2 дня).
Копируйте сам таймстамп, ISO-строку или локальное время - то, что нужно. Удобно, когда заполняете exp у JWT, строку в БД или составляете запрос к логам.
Форматы, которые чаще всего встречаются при работе с датами и временем в коде. ISO 8601 также описан IETF как RFC 3339 - для использования в протоколах.
| Формат | Пример | Где встречается |
|---|---|---|
| Unix-секунды | 1777118400 | Логи бэкенда, exp в JWT, POSIX time(), Redis |
| Unix-миллисекунды | 1777118400000 | JavaScript Date.now(), Java System.currentTimeMillis() |
| ISO 8601 в UTC | 2026-04-25T12:00:00Z | REST API, JSON, GraphQL, лог-файлы |
| ISO 8601 со смещением | 2026-04-25T14:00:00+02:00 | Расписания для пользователей, приглашения в календарь |
| RFC 2822 | Sat, 25 Apr 2026 12:00:00 GMT | Заголовки писем, HTTP Date и Last-Modified |
| Только дата | 2026-04-25 | Дни рождения, праздники - без привязки к часовому поясу |
1777118400
1777118400000
Оба числа описывают один и тот же момент, если первое читать как секунды, а второе - как миллисекунды. Их путаница - самый частый баг с таймстампами.
{ "id": 42, "createdAt": 1777118400, "expiresAt": 1777204800}Сначала переведите каждое значение и только потом решайте, в прошлом оно или в будущем. Большинство JSON-API отдают Unix-секунды, но в документации это лучше перепроверять - бэкенды на JavaScript часто возвращают миллисекунды.
2026-04-25T12:00:00Z
2026-04-25T14:00:00+02:00
Эти две строки описывают *один и тот же момент времени*. Храните моменты всегда в UTC, а в локальное время форматируйте только при отображении.
1700000000 как секунды - это ноябрь 2023, а как миллисекунды - январь 1970.'2026-04-25') вместо самих таймстампов. Две корректные ISO-строки могут описывать один и тот же момент в разных форматах.1970-01-01 00:00:00 UTC. Одно число, описывающее конкретный момент времени независимо от часового пояса.Date.now() возвращает миллисекунды, большинство бэкендов - секунды.Date в JavaScript хранит время как число миллисекунд с Unix-эпохи - именно это возвращают Date.now() и new Date().getTime(). Это даёт большую точность, чем секунды, но регулярно приводит к багам с разницей в 1000 при стыковке с другими языками.new Date(...); в Python - используйте datetime.fromtimestamp(...). Или просто вставьте значение в конвертер и получите результат в один клик.2038-01-19 - это известная «проблема 2038 года». Современные языки и СУБД хранят таймстампы в 64-битных целых, что расширяет безопасный диапазон на сотни миллиардов лет.