Конвертер Unix timestamp

Переводите Unix-время в дату и обратно: локальное время, UTC, ISO 8601 и RFC 2822. Секунды и миллисекунды определяются автоматически, всё считается в браузере.

Текущий timestamp, секунды
—
Текущий timestamp, миллисекунды
—

Timestamp → дата

Дата → timestamp

Форматы: 2024-03-01 12:00:00, 2024-03-01T12:00:00+03:00, 01.03.2024 12:00. Если в строке указан пояс (Z или ±ЧЧ:ММ), он важнее переключателя.

Проверяете время в ответах API? PingDesk мониторит эндпоинты каждую минуту, проверяет код ответа и содержимое и сообщает о сбое в Telegram, MAX или на почту.

Мониторинг API

Как перевести Unix timestamp в дату

Конвертер показывает текущий Unix timestamp в секундах и миллисекундах и переводит любое значение в понятную дату: в вашем часовом поясе, в UTC, в форматах ISO 8601 и RFC 2822. Обратное преобразование превращает дату и время в timestamp — например, чтобы подставить его в SQL-запрос или параметр API.

Единица измерения определяется автоматически по величине числа: 10 цифр — секунды, 13 — миллисекунды, 16 — микросекунды, 19 — наносекунды. Всё считается в браузере, значения никуда не отправляются.

Как пользоваться конвертером

  1. 1Скопируйте текущий timestamp из карточек вверху страницы — значения обновляются в реальном времени.
  2. 2Чтобы узнать дату, вставьте число в поле «Timestamp → дата». Если автоопределение ошиблось, выберите единицу вручную.
  3. 3Скопируйте нужный формат: локальное время, UTC, ISO 8601 или RFC 2822.
  4. 4Для обратного перевода введите дату в поле «Дата → timestamp», например 2024-03-01 12:00:00 или 01.03.2024 12:00, и выберите, в каком поясе она указана — вашем или UTC.
  5. 5Если в строке уже есть часовой пояс, например +03:00 или Z, конвертер учтёт его независимо от переключателя.

Что такое Unix timestamp

Unix timestamp, или Unix-время, — количество секунд, прошедших с 1 января 1970 года 00:00:00 по UTC. Этот момент называют эпохой Unix. Значение не зависит от часового пояса: в Москве, Владивостоке и Лондоне в одну и ту же секунду timestamp одинаковый, отличается только его перевод в местное время.

Unix-время не учитывает високосные секунды: каждые сутки в нём длятся ровно 86 400 секунд. Благодаря этому разницу между двумя моментами легко посчитать простым вычитанием.

Примечательные значения Unix-времени
TimestampДата и время (UTC)Событие
001.01.1970 00:00:00Эпоха Unix
1 000 000 00009.09.2001 01:46:40Первый timestamp из 10 цифр
1 700 000 00014.11.2023 22:13:20Круглое число, которое часто встречается в примерах
2 000 000 00018.05.2033 03:33:20Два миллиарда секунд
2 147 483 64719.01.2038 03:14:07Максимум знакового 32-битного числа
10 000 000 00020.11.2286 17:46:40Первый timestamp из 11 цифр

Секунды или миллисекунды: как отличить

Разные языки и системы хранят время с разной точностью. Самый надёжный признак — количество цифр в текущих датах. Конвертер считает секундами всё, что меньше 100 миллиардов (это даты до 5138 года), поэтому миллисекундные значения до марта 1973 года нужно отметить вручную.

Цифр сейчасЕдиницаГде встречается
10СекундыUnix, PHP time(), Go Unix(), MySQL UNIX_TIMESTAMP()
13МиллисекундыJavaScript Date.now(), Java currentTimeMillis()
16МикросекундыGo UnixMicro(), трейсинг, часть логов
19НаносекундыGo UnixNano(), Python time.time_ns()

Как получить текущий timestamp в разных языках

Команды ниже возвращают текущее Unix-время. Обратите внимание, что JavaScript и Java по умолчанию работают в миллисекундах, а большинство остальных — в секундах.

Язык или системаСекундыМиллисекунды
Bash (GNU date)date +%sdate +%s%3N
JavaScriptMath.floor(Date.now() / 1000)Date.now()
Pythonint(time.time())time.time_ns() // 1_000_000
PHPtime()(int) (microtime(true) * 1000)
Gotime.Now().Unix()time.Now().UnixMilli()
JavaInstant.now().getEpochSecond()System.currentTimeMillis()
PostgreSQLextract(epoch from now())::bigint(extract(epoch from now()) * 1000)::bigint
MySQLUNIX_TIMESTAMP()ROUND(UNIX_TIMESTAMP(NOW(3)) * 1000)

Форматы даты: ISO 8601, RFC 2822 и HTTP-date

После перевода timestamp в дату важно выбрать формат, который поймёт принимающая сторона. Для одного и того же момента — 1 700 000 000 — форматы выглядят так:

ФорматПримерГде используется
ISO 86012023-11-14T22:13:20ZJSON API, логи, базы данных
ISO 8601 со смещением2023-11-15T01:13:20+03:00API с явным часовым поясом
RFC 2822Tue, 14 Nov 2023 22:13:20 +0000Заголовок Date в электронной почте, RSS
HTTP-date (RFC 9110)Tue, 14 Nov 2023 22:13:20 GMTHTTP-заголовки Date, Last-Modified, Expires
Локальный формат15.11.2023, 01:13:20Интерфейсы для людей (здесь — московское время)

Частые ошибки при работе с timestamp

Большинство проблем со временем в коде сводится к путанице единиц и часовых поясов. Проверьте эти места, если дата выглядит странно:

  • Секунды переданы туда, где ждут миллисекунды: 1 700 000 000 превращается в 20 января 1970 года.
  • Миллисекунды переданы как секунды: дата уезжает на десятки тысяч лет вперёд или парсер выдаёт ошибку.
  • Смещение пояса применено дважды: время «уезжает» на 3 часа для Москвы, потому что локальное время сохранили как UTC.
  • Дата без пояса прочитана по-разному: строка 2024-03-01 12:00 на сервере в UTC и в браузере в Москве означает разные моменты.
  • Сравнение строк вместо чисел: «999999999» больше «1000000000» при строковом сравнении.

Проблема 2038 года

Если время хранится в знаковом 32-битном целом, максимальное значение — 2 147 483 647, то есть 19 января 2038 года 03:14:07 UTC. Через секунду счётчик переполняется и становится отрицательным, а дата превращается в 13 декабря 1901 года.

Современные 64-битные системы, языки и базы данных хранят время в 64-битных числах, и для них проблемы нет. Риск остаётся у старых встраиваемых устройств, 32-битных сборок и полей фиксированного размера — например, тип TIMESTAMP в MySQL ограничен той же датой в 2038 году.

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

Как перевести Unix timestamp в обычную дату?

+

Вставьте число в поле «Timestamp → дата»: конвертер сам определит единицу и покажет дату в вашем часовом поясе, в UTC, ISO 8601 и RFC 2822. В Linux то же самое делает команда date -d @1700000000.

Как понять, секунды это или миллисекунды?

+

Посчитайте цифры: у текущих дат timestamp в секундах состоит из 10 цифр, в миллисекундах — из 13. Если после перевода получился 1970 год или далёкое будущее, скорее всего, единица выбрана неверно.

Зависит ли Unix timestamp от часового пояса?

+

Нет. Timestamp считается от эпохи в UTC и одинаков во всём мире. Часовой пояс нужен только для отображения: один и тот же timestamp в Москве и Новосибирске показывает разное местное время.

Учитывает ли Unix-время високосные секунды?

+

Нет, в Unix-времени каждые сутки длятся ровно 86 400 секунд. Поэтому разница двух timestamp — это реальная длительность без поправки на високосные секунды.

Что означает отрицательный timestamp?

+

Момент до 1 января 1970 года. Например, −86 400 — это 31 декабря 1969 года 00:00:00 UTC. Конвертер поддерживает отрицательные значения.

Как перевести дату в timestamp в Excel?

+

Если в ячейке A1 дата в UTC, используйте формулу =(A1-ДАТА(1970;1;1))*86400. Обратное преобразование: =A1/86400+ДАТА(1970;1;1) с форматом ячейки «Дата и время».

Что будет с timestamp в 2038 году?

+

Системы, которые хранят время в знаковом 32-битном числе, переполнятся 19 января 2038 года в 03:14:07 UTC. Для 64-битного времени это не проблема: его хватит на миллиарды лет.

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