belun.app Блог EN

Unix-timestamp: что это и как конвертировать

Практическое руководство по Unix-временным меткам — что такое epoch-время, секунды vs миллисекунды, часовые пояса и способы конвертации.

Digital clock display showing Unix timestamp numbers on a developer's screen

Откройте любую схему базы данных — и почти наверняка увидите колонку created_at со значением вроде 1700000000. Это Unix-timestamp. Если вам хоть раз приходилось вручную выяснять, какой это день, вы знаете, как быстро надоедает переводить числа в даты без нормального инструмента.

Конвертер временных меток работает в обе стороны: вставьте число — получите читаемую дату, выберите дату — получите epoch-значение.

Что такое Unix-timestamp

1 января 1970 года, 00:00:00 UTC называется Unix epoch — точкой отсчёта. Unix-timestamp — это количество секунд, прошедших с этого момента. Сейчас это примерно 1 716 000 000. Примерно в 2038 году 32-битные системы, хранящие timestamp как знаковое целое, переполнятся — это проблема 2038 года, и некоторые устаревшие системы до сих пор с ней борются.

Формат не зависит от часовых поясов. 1700000000 — это одна и та же точка во времени, где бы вы ни находились. Именно поэтому он стал стандартом для хранения времени в базах данных и API.

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

Два формата постоянно путают:

  • секунды (10 цифр): 1700000000
  • миллисекунды (13 цифр): 1700000000000

Date.now() в JavaScript возвращает миллисекунды. time.time() в Python — секунды (как float). Базы данных — по-разному. Из-за этого несоответствия возникают баги: конвертируешь timestamp и получаешь дату из 1970-го, потому что миллисекунды были поняты как секунды, или дату из 57 000-го — потому что наоборот.

Конвертер временных меток определяет это автоматически: всё, что больше 10 миллиардов, считается миллисекундами. Это перекрывает все даты с 1970 по 2286 год — практически все реальные случаи.

Часовые пояса

Unix-timestamp не привязан к часовому поясу. Часовые пояса появляются при переводе числа в читаемый формат.

Инструмент показывает три варианта:

  • ISO 8601 (2024-11-14T22:13:20.000Z) — всегда UTC, буква Z в конце явно указывает на это
  • UTC — тот же момент в более читаемом виде
  • Локальное — конвертация в часовой пояс вашего браузера

Если на вашей машине UTC+3, а UTC-время 19:00 — локальное покажет 22:00. Всё работает правильно, просто отображается смещение вашего часового пояса.

Отображение «относительного времени»

Надпись «3 года назад» рядом с 1560000000 часто полезнее, чем голая дата — особенно когда просматриваешь логи или разбираешь баги. Относительное время показывает, насколько timestamp отстоит от текущего момента.

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

Лог-файлы почти всегда используют Unix-timestamp ради компактности. Вставил значение — получил полную дату, без арифметики в уме.

Ответы API от Stripe, GitHub или AWS содержат Unix-timestamp в JSON-полях. При отладке просроченного токена или проблем с тайминогом вебхука конвертация timestamp — как правило, первый шаг.

Запросы к базе данных нередко требуют фильтрации по временному диапазону в epoch-значениях. Выберите начало и конец в конвертере, скопируйте числа и вставьте в условие WHERE.


Вставьте любой timestamp в Конвертер временных меток — и получите полную разбивку даты мгновенно, без регистрации и отправки данных куда-либо.

Попробуйте инструмент

Конвертер временных меток →