Подключиться через MCP →

Введите расчет

По умолчанию задано UTC+9 (японское время). Для поясов западнее UTC используйте отрицательные значения.

Математическая формула

Реклама

Результатов

UNIX-время
1 749 913 200
секунд с 1970-01-01 00:00:00 UTC
Определение POSIX-время (без високосных секунд)
Начало отсчёта (эпоха) 1970-01-01 00:00:00 UTC

Что такое UNIX-время?

UNIX-время (его также называют UNIX timestamp или POSIX-время) — это количество секунд, прошедших с начала отсчёта UNIX, то есть с момента 1970-01-01 00:00:00 UTC. Это универсальный, не зависящий от языка способ представить любой момент времени одним целым числом. Он повсеместно используется в программировании, в логах, базах данных и API. Високосные секунды при этом не учитываются — каждые сутки считаются ровно за 86 400 секунд.

Временная шкала, показывающая начальную точку эпохи UNIX и секунды, отсчитываемые вперёд
Время UNIX отсчитывает секунды, прошедшие с начала эпохи — 1970-01-01 00:00:00 UTC.

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

Введите календарную дату (год, месяц, день) и время (час, минуту, секунду) так, как они показаны на обычных «настенных» часах в вашем часовом поясе. Затем в поле «Сдвиг относительно UTC» укажите смещение этого местного времени в часах. Например, для Японии это +9, для Индии +5,5, а для тихоокеанского стандартного времени США (PST) — −8. По умолчанию задан сдвиг +9 (японское время). Если оставить часы, минуты и секунды пустыми, они будут считаться равными нулю.

Как работает формула

Сначала дата переводится в число дней с помощью алгоритма «days-from-civil» (автор — Говард Хиннант). Он корректно отсчитывает дни от эпохи для любой даты по григорианскому календарю, включая високосные годы и даты до 1970 года. Полученное число дней умножается на 86 400, после чего прибавляются часы, минуты и секунды — так получается количество секунд от 1970-01-01 00:00:00 в местном времени. В конце из результата вычитается сдвиг UTC (в часах × 3600), чтобы привести значение к UTC.

$$\begin{gathered} t = 86400 \cdot D + 3600\,\text{Hour} + 60\,\text{Minute} + \text{Second} - 3600\,\text{UTC Offset} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} D &= \text{days from } 1970\text{-}01\text{-}01 \text{ to the chosen date} \\ \text{date} &= \left(\text{Year},\ \text{Month},\ \text{Day}\right) \end{aligned} \right. \end{gathered}$$

Схема, раскладывающая дату и время на дни, часы, минуты, секунды и корректировку смещения UTC
Формула суммирует дни, часы, минуты и секунды, а затем вычитает смещение UTC.

Разбор примера

Возьмём 2025-06-15 00:00:00 при сдвиге +9: daysSinceEpoch = 20254, значит localSeconds = \(20254 \times 86400 = 1\,749\,945\,600\). Вычитаем \(9 \times 3600 = 32\,400\) и получаем UNIX-время 1 749 913 200, что соответствует 2025-06-14 15:00:00 UTC.

$$t = 20254 \times 86400 - 9 \times 3600 = 1\,749\,913\,200$$

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

Почему timestamp меньше, чем я ожидаю, при положительном сдвиге? Потому что местное время, опережающее UTC, соответствует более раннему моменту по UTC. Поэтому его значение UNIX-времени получается меньше, чем у тех же показаний часов, прочитанных как UTC.

Работает ли это с датами до 1970 года? Да — результат просто будет отрицательным. Так, 1969-12-31 23:59:59 UTC равно \(-1\).

Учитываются ли високосные секунды? Нет. Калькулятор следует стандартному определению POSIX, по которому каждые сутки длятся ровно 86 400 секунд.

Последнее обновление: