Секунды vs миллисекунды
1777118400
1777118400000
Оба числа описывают один и тот же момент, если первое читать как секунды, а второе — как миллисекунды. Их путаница — самый частый баг с таймстампами.
Преобразуйте между Unix-таймстампами, ISO 8601, UTC и локальным временем.
Последнее обновление
177723989317772398930002026-04-26T21:44:53.000Z2026-04-26 21:44:53Sun, 26 Apr 2026 21:44:53 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-битных целых, что расширяет безопасный диапазон на сотни миллиардов лет.