Конвертер Unix-временных меток
Конвертируйте между Unix-временными метками и читаемыми датами. Поддержка точности до секунд и миллисекунд.
Как использовать
- Введите Unix-временную метку для преобразования в читаемую дату
- Или выберите дату и время для преобразования в Unix-временную метку
- Переключайтесь между форматом секунд и миллисекунд
Часто задаваемые вопросы
-
Что такое Unix-временная метка?
Unix-временная метка — это количество секунд, прошедших с 1 января 1970 года (UTC), также известное как эпоха Unix. Широко используется в программировании и базах данных.
-
В чём разница между временными метками в секундах и миллисекундах?
Временные метки Unix в секундах состоят из 10 цифр (например, 1700000000), а в миллисекундах — из 13 цифр (например, 1700000000000). JavaScript использует миллисекунды, тогда как большинство Unix-систем использует секунды.
-
Что такое проблема Y2K38?
32-битные системы хранят временные метки как знаковое 32-битное целое число, которое переполнится 19 января 2038 года. Современные 64-битные системы не имеют этого ограничения.
-
Учитывает ли инструмент часовые пояса?
Инструмент отображает время как в UTC, так и в вашем местном часовом поясе для удобного сравнения.
Что такое Unix-временная метка
Unix-временная метка (Unix timestamp, POSIX time, Epoch time) — это целое число, представляющее количество секунд, прошедших с 1 января 1970 года, 00:00:00 UTC. Эта точка отсчёта называется «эпохой Unix» (Unix Epoch) и была выбрана при разработке операционной системы UNIX в конце 1960-х годов.
Unix-время — это универсальный, независимый от часового пояса и локали способ представить момент времени. Именно поэтому оно широко используется в:
- базах данных (MySQL, PostgreSQL, MongoDB)
- журналах событий (логах) серверов и приложений
- API-ответах и веб-хуках
- системах кэширования (HTTP-заголовки
Expires,Last-Modified) - токенах JWT (поля
iat,exp,nbf)
Секунды и миллисекунды: в чём разница
Исторически Unix-время измеряется в секундах и представляет собой 10-значное число (например, 1700000000). Однако JavaScript и многие современные API используют миллисекунды — 13-значное число (1700000000000).
Это различие — источник распространённых ошибок:
Date.now()в JavaScript возвращает миллисекундыtime()в Python и PHP возвращает секундыSystem.currentTimeMillis()в Java — миллисекунды
При работе с API всегда уточняйте единицу: временная метка 1700000000 — это 2023 год в секундах, но в миллисекундах это 1970 год плюс примерно 20 дней. Путаница может привести к некорректным датам на несколько десятилетий.
Как определить единицу по числу
Простое правило: если временная метка содержит 10 цифр — это секунды, если 13 — миллисекунды. Для нынешнего десятилетия (2020-е годы):
- Секунды: ~1 700 000 000
- Миллисекунды: ~1 700 000 000 000
Проблема 2038 года (Y2K38)
32-битные системы хранят Unix-время как знаковое 32-битное целое число. Максимальное значение такого числа — 2 147 483 647, что соответствует 19 января 2038 года, 03:14:07 UTC. После этого момента счётчик переполнится и перейдёт в отрицательное число, что вызовет некорректную интерпретацию дат.
Это аналог проблемы Y2K (2000 год), только для 32-битных систем. Большинство современных 64-битных операционных систем и языков программирования используют 64-битные целые числа для хранения времени, что отодвигает теоретический предел до 292 миллиардов лет. Однако встроенные системы, промышленное оборудование и устаревшее программное обеспечение на 32-битной архитектуре по-прежнему могут быть уязвимы.
Форматы представления дат в API
При работе с API встречаются несколько стандартных форматов:
- Unix timestamp (число):
1700000000— компактно, независимо от часового пояса - ISO 8601 (строка):
2023-11-14T22:13:20Z— читаемо, содержит часовой пояс - RFC 2822:
Tue, 14 Nov 2023 22:13:20 +0000— формат email-заголовков
Unix-метка предпочтительна для хранения и вычислений (сравнение, разность), ISO 8601 — для отображения и передачи между системами.
Полезные вычисления с временными метками
Временные метки удобны для арифметики с датами:
- Прошло ли N дней? Вычтите текущую метку из прошлой и сравните с
N * 86400 - Когда истекает токен? Прибавьте время жизни в секундах к метке создания
- Сортировка по времени? Числа сравниваются быстрее строк