Перейти к содержанию
Избранное

Конвертер Unix-времени (меток времени)

Обновлено:

Переводите метку времени Unix (epoch time) в понятные дату и время в местном и UTC-формате или преобразуйте любую дату и время в метку времени Unix в секундах или миллисекундах.

Конвертировать метки времени Unix

Поля ввода
t
Секунды (или миллисекунды) с 1 января 1970 г., 00:00:00 UTC. Для дат до 1970 года допускаются отрицательные значения.
Если включено, результат будет автоматически обновляться при изменении любого значения.

Формула метки времени Unix

Формула
\[ t = \left\lfloor \frac{ms}{1000} \right\rfloor \] \[ \text{Дата} = 1970\text{-}01\text{-}01\ 00{:}00{:}00\ \text{UTC} + t\ \text{секунд} \] \[ t_{\text{местн}} = t_{\text{UTC}} + t_{\text{смещ}} \]

Где:

  • \(t\) — метка времени Unix, то есть количество полных секунд, прошедших с начала эпохи (1 января 1970, 00:00:00 UTC)
  • \(ms\) — то же значение, выраженное в миллисекундах
  • \(t_{\text{смещ}}\) — смещение часового пояса вашего местоположения относительно UTC, в секундах

Первая строка переводит миллисекундную метку в секунды; вторая определяет, что означает метка времени — простой счёт секунд, добавляемых к началу эпохи; третья сдвигает время UTC в ваш местный часовой пояс.

Метка времени Unix — пример вычисления

Пример: преобразуем метку 1735689600 (секунды) в дату.

\[ 1735689600 \div 86400 = 20089\ \text{полных дней} \]

20089 полных дней после 1970-01-01 дают ровно 2025-01-01, причём остаток равен 0 секундам, значит, время — полночь:

Результат: 2025-01-01 00:00:00 UTC. В вашем местном часовом поясе часы показывают полночь плюс ваше смещение от UTC (например, 2025-01-01 01:00:00 для UTC+1). В миллисекундах тот же момент — 1735689600000 мс.

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

  1. Откройте Направление преобразования и выберите Метка времени → Дата и время или Дата и время → Метка времени; поля ввода переключатся автоматически.
  2. Для преобразования метки времени введите число в поле Метка времени Unix и выберите Секунды или Миллисекунды в поле Единица. Отрицательные значения работают для дат до 1970 года.
  3. Для обратного направления задайте Дату и, при желании, Время (если время не указывать, будет полночь). Значения интерпретируются в вашем местном часовом поясе.
  4. Ознакомьтесь с результатами: Местные дата и время с вашим смещением от UTC, Дата и время UTC, метка времени в секундах и миллисекундах, а также строка ISO 8601 и относительное время, в которой дополнительно указаны день года и день недели.

Что такое метка времени Unix?

Метка времени Unix (её также называют epoch time или POSIX time) — это количество секунд, прошедших с 1 января 1970, 00:00:00 UTC — «начала эпохи Unix». Вместо того чтобы хранить дату в виде отдельных полей года, месяца, дня и часового пояса, компьютеры хранят одно целое число, которое увеличивается на 1 каждую секунду. Метка 0 — это сама эпоха; 1735689600 — ровно 55 лет спустя, а отрицательные метки отсчитываются назад к датам до 1970 года.

Такое представление популярно, потому что оно компактно, удобно для сравнения и полностью избавлено от неоднозначности часовых поясов. Сортировка событий, измерение длительностей или проверка «было ли A раньше B?» превращаются в простую арифметику целых чисел. Метки времени Unix встречаются в базах данных, файлах журналов, API (например, JavaScript Date.now(), который возвращает миллисекунды), заданиях cron и вебхуках.

При интерпретации результата помните о различии между UTC и местным временем. Метка времени всегда обозначает один абсолютный момент, но показания часов зависят от смещения наблюдателя. Этот калькулятор показывает и то, и другое: дату и время UTC, которые никогда не меняются, и ваши местные дату и время, которые браузер вычисляет из часового пояса вашего устройства. Строка ISO 8601 (2025-01-01T00:00:00.000Z) — это форма UTC, заканчивающаяся на Z («время Зулу»).

Строка Относительное время даёт быстрое человеческое представление о масштабе — «около 6 месяцев назад» или «через 3 дня» — что удобно при чтении журналов систем с неизвестными вам часами или когда метка времени пришла из заголовка, например из поля HTTP Date.

Допущения, ограничения и советы

  • Секунды против миллисекунд: многие системы (JavaScript, Java) используют миллисекунды, тогда как инструменты Unix и большинство API — секунды. Если ваше число состоит из 13 цифр, это почти наверняка миллисекунды; 10 цифр обычно означают секунды. Частая ошибка — принять одно за другое, что сдвигает дату примерно на 31 700 лет.
  • Местный часовой пояс: в направлении «Дата и время → Метка времени» калькулятор интерпретирует ваш ввод в часовом поясе, настроенном на вашем устройстве. Если нужна метка для конкретного момента UTC, сначала переведите местное время в UTC (например, вычтите ваше смещение).
  • Отрицательные метки: даты до 1970 года представляются отрицательными числами; калькулятор их обрабатывает, но некоторые старые системы — нет.
  • Секунды координации: стандартное время Unix игнорирует секунды координации — каждый день длится ровно 86 400 секунд. Это соответствует поведению практически всего ПО, поэтому для повседневных задач никакой коррекции не требуется.
  • Диапазон: JavaScript (а значит, и этот калькулятор) поддерживает примерно ±273 000 лет вокруг 1970 года, что далеко выходит за рамки любых практических дат.
  • Быстрая проверка на здравый смысл: 1 000 000 000 секунд ≈ 2001-09-09; 1 732 000 000 ≈ ноябрь 2024. Запомнив одну-две вехи, легко заметить потерянную цифру.

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

Работа с «сырыми» данными часто предполагает и другие кодировки. Если ваша метка времени встроена в более крупную структуру данных, воспользуйтесь форматтером JSON, чтобы сделать её читаемой, конвертером шестнадцатеричных чисел или конвертером двоичных чисел, чтобы изучить числовые представления, и декодером Base64, чтобы распаковать закодированные строки, которые часто несут значения epoch в URL и токенах API.

Часто задаваемые вопросы

Как вручную преобразовать метку времени Unix в дату?

Разделите метку на 86 400 (количество секунд в сутках), чтобы получить число полных дней с 1 января 1970 года, затем по остатку найдите время суток. Например, 1735689600 ÷ 86400 = 20089 дней без остатка, что даёт ровно 2025-01-01 00:00:00 UTC. Полный перевод дней в календарную дату вручную утомителен из-за високосных лет, поэтому конвертер куда практичнее.

Как понять, в секундах или миллисекундах задана метка времени?

Посчитайте цифры. Число из 10 цифр (например, 1735689600) почти всегда означает секунды и соответствует примерно годам 2001–2033. Число из 13 цифр (например, 1735689600000) — миллисекунды: тот же момент, умноженный на 1000. Путаница между ними — самая частая ошибка: она сдвигает результат примерно на 31 700 лет, и, зная правило, эту ошибку легко заметить.

Какова текущая метка времени Unix прямо сейчас?

Метка растёт на 1 каждую секунду, поэтому фиксированного ответа нет — она меняется постоянно. Удобные ориентиры: 1 700 000 000 — это 2023-11-14, 1 750 000 000 — 2025-06-28, а 2 000 000 000 будет 2033-05-18. Чтобы получить живое значение, преобразуйте текущую дату этим калькулятором или выполните Date.now() ÷ 1000 в консоли браузера.

Может ли метка времени Unix быть отрицательной?

Да. Отрицательные метки отсчитываются назад от начала эпохи: −86400 — это 1969-12-31 00:00:00 UTC, а −2 208 988 800 — 1 января 1900 года. Этот калькулятор принимает отрицательные значения, но в коде будьте осторожны: некоторые старые системы и базы данных хранят метки как целые числа без знака и вообще не могут представить даты до 1970 года.

Почему моя метка времени показывает другое время, чем на сервере или в файле журнала?

Метка времени всегда обозначает один абсолютный момент, но показания часов зависят от смещения часового пояса наблюдателя. Одно и то же значение 1735689600 читается как 00:00 в UTC, 01:00 в UTC+1 и 19:00 предыдущего дня в UTC−5. При сравнении значений между системами всегда сначала переводите их в UTC; именно поэтому калькулятор показывает дату и время UTC и ваши местные рядом.

В чём разница между Unix-временем, epoch time и POSIX time?

Ни в чём — все три названия обозначают одно и то же: счёт секунд с 1 января 1970 00:00:00 UTC. Unix-время также намеренно игнорирует секунды координации, считая каждые сутки ровно 86 400 секунд. Это значит, что метка не идеально синхронизирована с атомным временем, но она соответствует реальному поведению операционных систем, баз данных и языков программирования, поэтому на практике никакой поправки не требуется.

Что такое проблема 2038 года?

Старые 32-битные системы хранят метки времени как знаковое 32-битное целое, которое переполняется 2038-01-19 в 03:14:08 UTC. После этого момента такие системы могут интерпретировать даты как далёкий 1901 год. Современные 64-битные платформы (включая JavaScript, на котором работает этот калькулятор) имеют диапазон примерно ±273 000 лет и не затронуты, но проблема актуальна для устаревших встраиваемых устройств и старых схем баз данных.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *