() прошло секунд (микро секунд) с 1 Января 1970 00:00:00 GMT +00:00.
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(), Java
1700000000000
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 / macOS
date +%s
JavaScript
Math.floor(Date.now() / 1000)
PHP
time()
Python
int(time.time())
Go
time.Now().Unix()
Java
Instant.now().getEpochSecond()
C#
DateTimeOffset.UtcNow.ToUnixTimeSeconds()
MySQL
SELECT UNIX_TIMESTAMP();
PostgreSQL
SELECT extract(epoch FROM now());
SQLite
SELECT strftime('%s', 'now');
Примечательные моменты
Timestamp
Дата (UTC)
Чем знаменит
0
01.01.1970 00:00:00
начало эпохи Unix
1000000000
09.09.2001 01:46:40
первый миллиард секунд
1234567890
13.02.2009 23:31:30
«красивое» число — его отмечали программисты по всему миру
2000000000
18.05.2033 03:33:20
два миллиарда секунд
2147483647
19.01.2038 03:14:07
предел 32-битного timestamp
Как пользоваться калькулятором
Выберите часовой пояс — все преобразования будут в нём, выбор запоминается.
Из даты — заполните день, месяц, год и время и нажмите «Выполнить», чтобы получить timestamp.
Дату строкой можно задать в формате функции strtotime: now, tomorrow, +1 week 2 days, 2026-10-06 12:00.
Из Time Stamp — введите число в секундах, чтобы увидеть дату.