FAQ Конвертер Linux timestamp
Q: Что такое Unix-метка времени?
A: Unix-метка времени (также известная как POSIX-время или эпохальное время) — это количество секунд, прошедших с 1 января 1970 года, 00:00:00 UTC, без учёта високосных секунд. Это простое целое число, которое представляет один и тот же момент времени в глобальном масштабе, независимо от часового пояса.
Q: Как преобразовать Unix-метку времени в удобочитаемую дату?
A: Преобразовать Unix-метку времени можно несколькими способами:
- Онлайн: Используйте наш Конвертер Unix-меток времени для мгновенного преобразования
- Терминал Linux: Выполните
date -d @1785292800(на GNU Linux) илиdate -r 1785292800(на macOS) - JavaScript:
new Date(timestamp * 1000).toISOString() - Python:
datetime.utcfromtimestamp(1785292800) - PHP:
date("Y-m-d H:i:s", 1785292800)
Q: В чём разница между метками времени в секундах и миллисекундах?
A: Метка времени в секундах имеет длину 10 цифр (например, 1785292800). Метка времени в миллисекундах имеет длину 13 цифр (например, 1785292800000), поскольку значение в секундах умножается на 1000. Date.now() в JavaScript возвращает миллисекунды, в то время как большинство других систем и API используют секунды. Случайное смешивание этих форматов приводит к совершенно неверным датам — использование миллисекунд там, где ожидаются секунды, даёт дату примерно на 56 000 лет в будущем.
Всегда проверяйте разрешение вашего источника данных перед преобразованием. Если сомневаетесь, посчитайте цифры: 10 цифр = секунды, 13 цифр = миллисекунды.
Q: Могут ли Unix-метки времени представлять даты до 1970 года?
A: Да. Даты до 1 января 1970 года представляются отрицательными числами. Например, метка времени -3600 соответствует 31 декабря 1969 года, 23:00:00 UTC. Не все инструменты преобразования корректно обрабатывают отрицательные метки времени, но наш онлайн-конвертер поддерживает их. Языки программирования поддерживают их повсеместно.
Q: Что такое проблема 2038 года?
A: Проблема 2038 года (также называемая Y2K38) — это проблема представления времени, затрагивающая системы, хранящие метки времени в виде 32-битных целых чисел со знаком. Максимальное значение — 2147483647, что соответствует 19 января 2038 года, 03:14:07 UTC. Секунду спустя значение переполняется до -2147483648, что интерпретируется как 13 декабря 1901 года.
Большинство современных 64-битных систем не подвержены этой проблеме, но встроенные устройства, устаревшие базы данных и некоторые 32-битные системы остаются уязвимыми. Решением является переход на 64-битное представление времени, которое обеспечивает диапазон примерно в 292 миллиарда лет.
Q: Учитывают ли Unix-метки времени високосные секунды?
A: Нет. Unix-метки времени намеренно игнорируют високосные секунды. Каждый день считается ровно за 86 400 секунд, даже когда к UTC добавляется високосная секунда. Во время добавления високосной секунды Unix-метка времени не увеличивается в течение одной секунды, фактически пропуская високосную секунду. Это означает, что Unix-метки времени расходятся с атомным временем на небольшую (в настоящее время около 27 секунд), но накапливающуюся величину.
Q: Как обрабатывать часовые пояса при преобразовании Unix-меток времени?
A: Unix-метка времени представляет один и тот же момент повсюду. Часовой пояс имеет значение только при отображении в виде удобочитаемой даты. Всегда храните метки времени в их исходном целочисленном виде и преобразуйте в местное время только для отображения. Используйте названия часовых поясов IANA, такие как America/New_York, вместо аббревиатур вроде EST или PST, поскольку аббревиатуры не учитывают переход на летнее время. Наш Конвертер Unix-меток времени отображает результаты одновременно в нескольких часовых поясах.
Q: Какое максимальное значение Unix-метки времени?
A: Максимальное значение зависит от размера целого числа, используемого для хранения:
- 32-битное целое со знаком:
2147483647(19 января 2038 года, 03:14:07 UTC) - 32-битное целое без знака:
4294967295(7 февраля 2106 года, 06:28:15 UTC) - 64-битное целое со знаком:
9223372036854775807(примерно через 292 миллиарда лет от настоящего момента)
Большинство современных систем используют 64-битные целые числа, обеспечивая практически бесконечный диапазон. Общепринятая практика хранения меток времени в столбцах базы данных или структурах данных в виде 64-битного типа (BIGINT в SQL) является надёжной на будущее.