Что это такое
Метка времени Unix — это число секунд, прошедших с 00:00:00 UTC 1 января 1970 года, которое называют эпохой Unix. В один и тот же момент это число одинаково во всём мире, поэтому его используют API, журналы и базы данных. Например, 1700000000 — это 14 ноября 2023 года, 22:13:20 UTC.
Секунды или миллисекунды?
Метка в секундах сегодня состоит из 10 цифр. JavaScript, Java и многие API используют миллисекунды — это 13 цифр. Если дата получается в 1970 году или через тысячи лет, единица, скорее всего, не та.
Перевести онлайн
Вставьте её в Конвертер меток времени Unix. Он сам определяет секунды или миллисекунды и показывает дату в UTC и в вашем часовом поясе.
В коде и таблицах
- JavaScript:
new Date(1700000000 * 1000) - Python:
datetime.fromtimestamp(1700000000, tz=timezone.utc) - Excel или Google Таблицы:
=A1/86400+ДАТА(1970;1;1)(в английской версииDATE(1970,1,1)), затем задайте ячейке формат даты. Результат будет в UTC. - Терминал Mac или Linux, текущее время:
date +%s
Проблема 2038 года
Системы, хранящие метку как знаковое 32-битное число, исчерпают его 19 января 2038 года в 03:14:07 UTC. Современные системы используют 64 бита, которых хватит на миллиарды лет.
Разобранные примеры
0— это 1 января 1970 года, 00:00:00 UTC.86400— ровно на сутки позже, 2 января 1970 года.-86400— на сутки раньше, 31 декабря 1969 года. Отрицательные метки времени — даты до 1970 года.2000000000— это 18 мая 2033 года, 03:33:20 UTC.
Частые ошибки
- Думать, что у метки времени есть часовой пояс. Его нет. 1700000000 — один и тот же момент везде; от часового пояса зависит только то, как он отображается.
- Создавать метку из местного времени, как будто это UTC. Результат смещается на ваше смещение от UTC, часто ровно на несколько часов. После преобразования проверьте известную дату.
- Месяцы в JavaScript.
new Date(2026, 0, 15)— это 15 января: месяцы считаются с 0. - Секунды координации. Unix-время считает каждые сутки ровно 86 400 секундами и игнорирует секунды координации, поэтому это не счёт всех прошедших секунд.