Как работают Unix-таймстемпы

Unix-таймстемпы выглядят просто — это всего лишь числа, — но встречаются почти в любой веб-работе. На них опираются API, логи, экспорты, сообщения в очередях и записи событий. Формат — одно целое число, обозначающее секунды (или миллисекунды) с 1 января 1970 года UTC.

Главное преимущество — консистентность. Таймстемп компактен, на уровне хранения не зависит от часового пояса и его легко сравнивать, сортировать и передавать. Сложность в том, что сам по себе он нечитаем: значение вроде 1710153600 ничего не говорит, пока его не конвертируешь в дату.

Поэтому инструменты для таймстемпов остаются полезными даже опытным разработчикам. Часто нужно быстро ответить на практические вопросы: это секунды или миллисекунды? Какой дате оно соответствует в UTC и в локальном времени? Какой таймстемп соответствует конкретной дате для тестового запроса?

Когда это пригодится

  • Просмотр API-ответов с числовыми полями времени, такими как created_at или expires_at.
  • Проверка логов, где время событий хранится в сыром Unix-формате.
  • Отладка вопросов с часовыми поясами между бэкендом и браузером.
  • Конвертация даты в Unix-время перед тестированием запроса или payload-а.

Практический пример

Представьте, что API присылает 1710153600 в JSON-payload. С первого взгляда число ничего не говорит, но после конвертации становится видно, что оно соответствует конкретной дате UTC и локальной дате в вашем поясе. Это сразу отвечает, выглядит ли значение правдоподобным или сбито на часы, дни или даже на тысячекратный масштаб.

Здесь же важны миллисекунды. Значение вроде 1710153600000 описывает тот же момент, но в миллисекундах, а не в секундах. Если перепутать одно с другим, дата выйдет совершенно неправильной.

Типичные сценарии

  • Проверка того, в секундах или миллисекундах хранится поле таймстемпа.
  • Сравнение времени события в UTC с тем, что видят пользователи в локальном времени.
  • Создание примеров времени истечения для тестов и демо.
  • Проверка того, что бэкенд и фронтенд конвертируют одинаково.
  • Чтение старых экспортов без запуска отдельной консоли или скрипта.

Используйте браузерный конвертер

Используйте браузерный инструмент, чтобы решить это за секунды.

Частые вопросы

Почему таймстемпы используют UTC?

UTC даёт программам единую стабильную точку отсчёта. Читаемая локальная версия может меняться от пояса к поясу, а сам сохранённый таймстемп — нет.

Почему одни таймстемпы из 10 цифр, а другие из 13?

Десять цифр — обычно секунды. Тринадцать цифр — обычно миллисекунды.

Всегда ли нужны и UTC, и локальное время?

Обычно да, когда вы отлаживаете. UTC удобно сравнивать между системами, а локальное время помогает понять, что на самом деле видел пользователь.

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