CodeKitHub
Русский
Инструменты для работы со временем

Конвертер временных меток Unix

Преобразуйте временную метку Unix в понятную дату или выберите дату и получите соответствующую временную метку. Инструмент автоматически определяет, указаны ли секунды или миллисекунды, отображает время в местном формате, по UTC и в формате ISO 8601, а также показывает в верхней части страницы тикающие часы, отсчитывающие время с момента начала эпохи.

Текущая временная метка (секунды)
Текущая временная метка (миллисекунды)

Временная метка → Дата

Дата → Временная метка

Что это за инструмент?

Временная метка Unix (также называемая временем эпохи) — это количество секунд, прошедших с 1 января 1970 года, 00:00:00 по UTC. Это стандартный способ хранения временных отсчётов в компьютерах: базы данных, файлы журналов, API и языки программирования — все они используют его, поскольку это единое однозначное число, исключающее путаницу с часовыми поясами.

Существует два формата: секунды (сегодня — 10 цифр, например, 1720500000) и миллисекунды (13 цифр, используются в JavaScript и Java). Этот инструмент автоматически определяет, какой из них вы вставили.

Зачем его использовать?

  • Мгновенно считывайте временные метки из журналов, строк базы данных и ответов API.
  • Автоматическое распознавание секунд и миллисекунд — не нужно гадать.
  • Отображает одновременно местное время, UTC, время в формате ISO 8601 и относительное время («3 часа назад»).
  • Преобразование в обоих направлениях: временная метка → дата и дата → временная метка.
  • Часы, отображающие текущую эпоху в режиме реального времени, для быстрого ориентира.

Как использовать

  1. Для декодирования: вставьте временную метку (например, 1720500000) в левое поле и нажмите «Преобразовать».
  2. Просмотрите результат в вашем местном часовом поясе, в формате UTC, ISO 8601 и в виде относительного времени.
  3. Для кодирования: выберите дату и время в правом поле и нажмите «Преобразовать», чтобы получить временную метку в секундах и миллисекундах.
  4. Если вам нужна только текущая временная метка, воспользуйтесь часами в верхней части страницы.

Пример

Ввод

1720500000

Результат

Local time: 7/9/2024, 1:20:00 PM
UTC time:   Tue, 09 Jul 2024 05:20:00 GMT
ISO 8601:   2024-07-09T05:20:00.000Z

10-значное число интерпретируется как количество секунд; 13-значное — как количество миллисекунд.

Практические советы

  • Отладка ошибок, связанных с «неверным временем»: в 90 % случаев речь идет о проблемах с отображением часового пояса, а не о неверных временных метках. Прежде чем приступать к исправлению кода, сравните строку с указанием времени в формате UTC с логами вашего сервера (серверы обычно ведут логи в формате UTC).
  • Дата, которая точно совпадает с 1970-01-01, означает, что временная метка равна 0 или отсутствует — это классический признак нулевого значения, а не реальная дата.
  • Дата около 1970 года + несколько дней обычно означает, что где-то секунды были интерпретированы как миллисекунды; дата в 56 000+ году означает обратное.
  • В электронных таблицах: Excel подсчитывает количество дней с 1900 года, а не количество секунд с 1970 года. Для преобразования в временную метку в секундах используйте формулу =(A1/86400)+DATE(1970,1,1).

Реальные сценарии использования

Где временные метки создают проблемы на практике: при чтении полей срока действия в JWT и токенах API (exp/iat выражены в секундах по Unix), при сопоставлении времени отправки пользователем отчета об ошибке со строками журнала сервера, при настройке срока хранения в кэше (TTL) и интервалов запуска cron, а также при проверке, действительно ли срок действия сертификата или токена истек. Строка с относительным временем («3 часа назад») — это самый быстрый способ проверки правильности всех этих данных.

Отладка JWT — достаточно распространенный процесс, чтобы описать его подробно: декодируйте полезную нагрузку токена с помощью инструмента Base64, а затем вставьте полученное значение exp сюда — и вы сразу получите ответ на вопрос «истек ли срок действия этого токена и на сколько».

Почему время Unix было разработано именно таким образом

Хранение одного инкрементируемого числа, отсчитываемого от фиксированной эпохи (а не в виде структуры «год/месяц/день/час»), было сознательным выбором в пользу простоты: две временные метки можно сравнивать или вычитать друг из друга с помощью простых арифметических операций, никакой календарной логики не требуется, именно поэтому на этом принципе построены базы данных, форматы журналов и внутреннее представление даты практически во всех языках программирования. Цена этой простоты — именно то, что этот инструмент призван сгладить: люди не мыслят в терминах «секунд с 1970 года», поэтому каждую временную метку необходимо преобразовать обратно в календарную дату, прежде чем она станет понятной человеку, читающему её, и при этом преобразовании необходимо одновременно учитывать часовой пояс, точность (секунды или миллисекунды) и формат отображения.

Кодировщик/декодировщик Base64 · Калькулятор возраста

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

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

По величине. Значения, равные 1 000 000 000 000 (1e12) или больше, рассматриваются как миллисекунды; меньшие значения — как секунды. Текущие даты составляют ~1,7 миллиарда секунд и ~1 700 миллиардов миллисекунд, поэтому эти два диапазона не пересекаются для реальных дат.

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

Часовые пояса. Временная метка всегда указана в формате UTC; строка «местное время» преобразует её в часовой пояс вашего устройства. Сравните строку UTC с данными в журналах вашей исходной системы — многие серверы ведут журналы в формате UTC.

В чём заключается «проблема 2038 года»?

В системах, где временные метки хранятся в виде 32-разрядных целых чисел со знаком, 19 января 2038 года произойдет переполнение. Современные системы используют 64-разрядные целые числа и не подвержены этой проблеме. Данный инструмент использует числа в JavaScript, которые поддерживают даты, выходящие далеко за пределы 2038 года.

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

Да. Отрицательные временные метки обозначают даты, предшествующие 1 января 1970 года — например, -86400 соответствует 31 декабря 1969 года.

Включает ли эта эпоха високосные секунды?

Нет. В системе Unix-времени считается, что каждый день состоит ровно из 86 400 секунд, а високосные секунды не учитываются — это намеренное упрощение, позволяющее упростить арифметические вычисления.

Похожие инструменты