Конвертер Unix-времени
Превратите Unix-время (epoch) в понятную дату — в вашем местном времени, в UTC и в формате ISO 8601 — или преобразуйте любую дату обратно во временную метку. Работает с секундами и миллисекундами.
—
Миллисекунды: —
ISO 8601: —
Вставьте значение epoch. Если ваша метка времени в миллисекундах, используйте переключатель.
Выберите дату и время, чтобы получить их временную метку Unix.
Как пользоваться Конвертер Unix-времени
- 1
Введите временную метку
Вставьте или введите временную метку Unix в поле «Временная метка в дату» и установите переключатель Секунды / Миллисекунды в соответствии с вашим значением.
- 2
Прочитайте дату
Посмотрите этот момент в вашем часовом поясе, в UTC, в виде строки ISO 8601 и как относительное время, например «3 часа назад».
- 3
Преобразуйте дату обратно
С помощью выбора «Дата во временную метку» укажите любую дату и время и получите значение epoch в секундах и миллисекундах.
- 4
Скопируйте результат
Нажмите «Копировать» у любого значения, чтобы поместить его в буфер обмена — готовым для вставки в код, запрос к базе данных или вызов API.
Unix-время простым языком для разработчиков
Что такое временная метка Unix
Временная метка Unix — это одно-единственное число, которое обозначает момент времени: количество секунд, прошедших с начала эпохи Unix, то есть с полуночи по UTC 1 января 1970 года. Например, метка 1700000000 соответствует 22:13:20 UTC 14 ноября 2023 года. Одно число однозначно фиксирует и полную дату, и время.
Поскольку это просто целое число, которое монотонно растёт, Unix-время легко хранить, сортировать и сравнивать. Вычтите одну метку из другой — и вы получите точное число секунд между двумя событиями. Именно из-за этой простоты оно лежит в основе столь многого в вычислительной технике — от времени изменения файлов до токенов аутентификации.
Почему именно 1970 год
Эпоха с отсчётом от 1970 года — это историческое наследие операционной системы Unix, которую как раз в то время разрабатывали в Bell Labs. Инженерам нужна была фиксированная точка отсчёта для системных часов, и начало десятилетия, в котором они работали, оказалось простым и удобным выбором. Это решение прижилось и спустя десятилетия остаётся стандартом практически на любой платформе.
В 1970 году нет ничего математически особенного — это просто общая нулевая точка. Важно лишь то, что с ней согласны все. Именно эта общая точка отсчёта позволяет метке, созданной на одной машине, быть правильно понятой на любой другой — независимо от производителя, языка программирования или местоположения.
Секунды против миллисекунд
Традиционно Unix-время измеряется в секундах, но многие современные среды используют миллисекунды для более высокой точности. Например, метод Date.now в JavaScript возвращает значение в миллисекундах. Практический признак — количество цифр: текущая метка в секундах состоит из 10 цифр, а тот же момент в миллисекундах — из 13 цифр, то есть примерно в тысячу раз больше.
Путаница между этими двумя единицами — частая ошибка. Передайте значение в миллисекундах в функцию, ожидающую секунды, — и дата окажется на десятки тысяч лет в будущем; сделайте наоборот — и вернётесь к окрестностям 1970 года. Если преобразованная дата выглядит абсурдно, первым делом проверьте единицы измерения. Переключатель «Секунды» / «Миллисекунды» в этом инструменте как раз и нужен, чтобы устранить эту путаницу одним нажатием.
UTC против местного времени
Сама временная метка Unix не несёт информации о часовом поясе. Она обозначает один и тот же момент в любой точке Земли: число будет одинаковым, находитесь вы в Токио или в Нью-Йорке. Часовые пояса вступают в игру лишь тогда, когда вы преобразуете этот момент в понятную человеку дату, — вот почему одна и та же метка отображается в разных местах как разное время на часах.
Этот конвертер показывает обе формы: ваше местное время, отформатированное по часовому поясу вашего устройства, и UTC — универсальную точку отсчёта. Хранить и передавать метки времени в UTC, а в местное время переводить только для отображения — стандартная практика, которая избавляет от целого класса ошибок со сдвигом на несколько часов, особенно при переходе на летнее время и обратно.
Проблема 2038 года
Многие старые системы хранят Unix-время в 32-битном целом числе со знаком, максимальное значение которого — 2 147 483 647. Этот потолок будет достигнут в 03:14:07 UTC 19 января 2038 года. Секундой позже счётчик переполнится и «перевернётся» в большое отрицательное число, которое такие системы истолкуют как дату в далёком 1901 году.
Это современное эхо проблемы 2000 года, и оно угрожает встраиваемым устройствам, устаревшим базам данных и любому коду, который всё ещё использует 32-битное время. Решение — хранить время в более ёмком 64-битном целом числе, что отодвигает предел на сотни миллиардов лет вперёд. Сам этот инструмент работает в вашем браузере и использует встроенные средства JavaScript для работы с датами, а не 32-битное время, поэтому без проблем преобразует даты далеко за пределами 2038 года.
Преобразование в обе стороны
Перейти от метки к дате — значит истолковать число как количество секунд, прошедших с начала эпохи, и прибавить их к началу эпохи. Обратное действие, превращение даты во временную метку, вычисляет, сколько секунд лежит между началом эпохи и нужным моментом. Конвертер делает и то, и другое: вставьте значение epoch, чтобы узнать его дату, или выберите дату в календаре, чтобы получить её метку.
Показатель относительного времени, например «3 часа назад», получается вычитанием метки из текущего момента и описанием разницы простыми словами. Это удобно для беглой проверки значения на адекватность: запись в журнале, которая якобы относится к моменту на два года в будущем, очевидно вызывает подозрения.
Где вы встретите Unix-время
Временные метки Unix встречаются в программном обеспечении повсюду. Серверные журналы проставляют такую метку в каждой строке, чтобы события можно было точно упорядочить. REST API возвращают их в полях вроде created_at и expires_at, потому что они компактны и не зависят от языка программирования. Базы данных используют их для сортировки и запросов по временным интервалам, а JWT кодируют срок действия в виде временной метки Unix.
Разработчикам и аналитикам нужно быстро читать такие значения каждый день. Когда вы отлаживаете ответ API, просматриваете файл журнала или проверяете, когда истекает срок действия токена, достаточно вставить «сырое» число в конвертер — и непрозрачное целое превращается в понятную дату, причём сразу и в вашем местном времени, и в UTC, в секундах или миллисекундах.
Часто задаваемые вопросы
Что такое временная метка Unix?
Моя метка времени в секундах или миллисекундах?
Какой часовой пояс использует конвертер?
Что такое проблема 2038 года?
Отправляются ли мои данные на сервер?
Похожие инструменты
Продолжайте работу с этими удобными инструментами