BL2.ru

Онлайн калькулятор unix time stamp

() прошло секунд (микро секунд) с 1 Января 1970 00:00:00 GMT +00:00.
..@::(dd.mm.yyyy @ hh:mm:ss) в Time Stamp
для обработки функцией strtotime (подробнее о формате ввода тут)
в дату

Unix time (UNIX-время, POSIX-время, Unix timestamp) — это количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC. Этот момент называют «эпохой Unix» (Unix Epoch). Например, значение 1700000000 соответствует 14 ноября 2023 года 22:13:20 UTC.

Почему это удобно

  • Одно число вместо даты. Время хранится как целое число — его легко сравнивать, сортировать и вычитать: разница двух timestamp — это интервал в секундах.
  • Компактно. 4 или 8 байт вместо строки с датой, временем и поясом.
  • Не зависит от часового пояса. В один и тот же момент timestamp одинаков на сервере в Москве и в Нью-Йорке. Отличается только перевод числа в «человеческую» дату — его делают с учётом пояса уже при выводе.

Секунды, миллисекунды, микросекунды

Классический Unix time — в секундах, но многие системы используют более мелкие единицы. Определить единицу проще всего по количеству цифр (для современных дат):

ЦифрЕдиницаГде встречаетсяПример
10секундыUnix, PHP, MySQL, Python int(time.time())1700000000
13миллисекундыJavaScript Date.now(), Java1700000000000
16микросекундыPostgreSQL, Go UnixMicro()1700000000000000
19наносекундыGo UnixNano(), логи1700000000000000000

Частая ошибка — передать миллисекунды туда, где ждут секунды: получится дата где-то в 55-тысячном году.

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

Сам timestamp часового пояса не содержит — он всегда отсчитывается от UTC. Пояс нужен только для перевода в дату и обратно. Поэтому:

  • храните время в базе как timestamp или в UTC, а в пояс пользователя переводите при показе;
  • при обратном переводе (дата → timestamp) обязательно указывайте пояс: «06.10.2026 12:00» в Москве и в Лондоне — это разные моменты с разницей в 2–3 часа;
  • летнее и зимнее время влияют только на перевод в дату, сам timestamp идёт равномерно.

Високосные секунды

Unix time считает, что в сутках ровно 86 400 секунд, и не учитывает високосные секунды UTC: в момент их добавления номер секунды просто повторяется. Для обычных задач это незаметно, а для точных научных расчётов используют шкалу TAI.

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

Если timestamp хранится в знаковом 32-битном целом, его максимум — 2147483647, то есть 19 января 2038 года 03:14:07 UTC. Через секунду значение переполнится и станет отрицательным — система решит, что на дворе 13 декабря 1901 года. Решение — 64-битные значения, их хватит примерно на 292 миллиарда лет. Современные ОС и языки уже используют 64 бита, но проблема остаётся для старых баз данных (тип TIMESTAMP в MySQL), встроенных устройств и бинарных форматов файлов.

Как получить текущий timestamp

ГдеКоманда
Linux / macOSdate +%s
JavaScriptMath.floor(Date.now() / 1000)
PHPtime()
Pythonint(time.time())
Gotime.Now().Unix()
JavaInstant.now().getEpochSecond()
C#DateTimeOffset.UtcNow.ToUnixTimeSeconds()
MySQLSELECT UNIX_TIMESTAMP();
PostgreSQLSELECT extract(epoch FROM now());
SQLiteSELECT strftime('%s', 'now');

Примечательные моменты

TimestampДата (UTC)Чем знаменит
001.01.1970 00:00:00начало эпохи Unix
100000000009.09.2001 01:46:40первый миллиард секунд
123456789013.02.2009 23:31:30«красивое» число — его отмечали программисты по всему миру
200000000018.05.2033 03:33:20два миллиарда секунд
214748364719.01.2038 03:14:07предел 32-битного timestamp

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

  • Выберите часовой пояс — все преобразования будут в нём, выбор запоминается.
  • Из даты — заполните день, месяц, год и время и нажмите «Выполнить», чтобы получить timestamp.
  • Дату строкой можно задать в формате функции strtotime: now, tomorrow, +1 week 2 days, 2026-10-06 12:00.
  • Из Time Stamp — введите число в секундах, чтобы увидеть дату.