🕐

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) является надёжной на будущее.

FAQ Конвертер Linux timestamp - CoolTool