В этой статье
Что такое Unix-временная метка?
Unix-временная метка (также называемая временем эпохи) — это количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC. Это наиболее широко используемый способ представления времени в компьютерных системах, поскольку он не зависит от часового пояса, хранится как единственное целое число и допускает простую арифметику.
Unix-временные метки используются практически во всех языках программирования и базах данных. JavaScript использует миллисекунды (разделите на 1000, чтобы получить секунды), тогда как большинство других языков используют секунды. Проблема 2038 года касается 32-битных систем, которые переполнятся, когда временная метка превысит 2^31.
Как работает конвертация временных меток
Конвертер переводит Unix-временные метки в читаемые даты и обратно.
- Из эпохи в дату — преобразует Unix-временную метку в отформатированную строку с датой и временем
- Из даты в эпоху — преобразует строку с датой и временем в соответствующую Unix-временную метку
- Поддержка часовых поясов — одновременно отображает преобразованное время в UTC и в местном часовом поясе
Попробуйте бесплатно — без регистрации
Конвертировать временную метку →Когда применять конвертацию временных меток
Конвертация временных меток полезна при работе с датами, хранящимися как числа в API, базах данных или журналах.
- Отладка API — преобразуйте Unix-временные метки в ответах API в читаемые даты для проверки
- Анализ журналов — интерпретируйте поля с временными метками в лог-файлах и записях баз данных
- Планирование — проверяйте, что вычисления дат в коде дают правильные значения Unix-временных меток
Часто задаваемые вопросы
В чём разница между Unix-временной меткой в секундах и в миллисекундах?
Большинство Unix-систем используют секунды. Метод Date.now() в JavaScript возвращает миллисекунды. Если временная метка выглядит в 1000 раз больше ожидаемой (например, 1708600000000 вместо 1708600000), она указана в миллисекундах. Всегда проверяйте порядок числа и делите на 1000, если работаете с JavaScript-временными метками в контексте, ожидающем секунды.
Что такое проблема 2038 года?
19 января 2038 года 32-битные знаковые целые числа, используемые для хранения Unix-временных меток, переполнятся и примут отрицательное значение, соответствующее 1901 году. Системы, всё ещё использующие 32-битные временные метки, перестанут работать корректно. Современные системы используют 64-битные целые числа, которые не переполнятся ещё миллиарды лет.
Влияет ли летнее время на Unix-временные метки?
Нет. Unix-временные метки всегда представляют количество секунд, прошедших с начала эпохи в UTC, независимо от летнего времени. Переход на летнее время применяется только при преобразовании в отображение по местному времени. Это одно из ключевых преимуществ хранения времени в виде Unix-временных меток.