Конвертер Unix Timestamp в Дату: Поддержка Форматов 12/24 Часа
Преобразуйте Unix временные метки в удобочитаемые даты и времена. Выбирайте между 12-часовым и 24-часовым форматами времени с помощью этого простого и удобного инструмента конвертации.
Конвертер Unix-времени
Unix timestamp — это количество секунд с 1 января 1970 года (UTC)
Конвертированная дата и время
Что такое Unix Timestamp?
Unix timestamp — это количество секунд, прошедших с 1 января 1970 года (полночь UTC/GMT), без учета високосных секунд. Он широко используется в системах Unix и языках программирования для вычислений с датами и временем.
Документация
Конвертер временной метки Unix в дату
Временная метка Unix — это число, обозначающее конкретный момент времени. Она отсчитывает целые секунды, прошедшие с полуночи по UTC 1 января 1970 г., — момента, называемого эпохой Unix. Этот инструмент преобразует временную метку Unix в календарную дату и время, отображаемые в формате с 24-часовым или 12-часовым представлением.
Как преобразовать временную метку Unix в дату
Основная формула проста:
дата = эпоха Unix (1970-01-01, 00:00:00 UTC) + временная метка (в секундах)
Чтобы преобразовать исходное число секунд в дату, нужно прибавить это количество секунд к 1 января 1970 г.. Затем результат необходимо разделить на год, месяц, день, час, минуту и секунду. Это самая сложная часть, поскольку нужно учитывать високосные годы, в которых в феврале появляется дополнительный день, а также разную продолжительность месяцев. В большинстве языков программирования есть встроенная функция работы с датами, которая выполняет это автоматически, поэтому вычислять всё поэтапно не требуется.
Пример расчёта
Возьмём временную метку 1609459200.
- Разделим её на количество секунд в сутках: 1 609 459 200 ÷ 86 400 = 18 628 суток.
- Отсчитаем 18 628 суток вперёд от 1 января 1970 г., учитывая по пути високосные годы.
- Отсчёт заканчивается на дате 1 января 2021 г..
Таким образом, 1609459200 преобразуется в пятницу, 1 января 2021 г., 00:00:00 UTC. День недели, пятница, определяется тем же подсчётом дней.
Конвертер показывает результат в часовом поясе, который сообщает браузер, а не в UTC. Читатель в Нью-Йорке увидит ту же временную метку как четверг, 31 декабря 2020 г., 19:00:00, поскольку в тот день Нью-Йорк отставал от UTC на пять часов.
Временная метка может быть и отрицательной: это соответствует дате до 1970 года. Например, -86400 — это ровно один день до эпохи: 31 декабря 1969 г., 00:00:00 UTC.
Точность временной метки: секунды, миллисекунды и микросекунды
Не каждая система измеряет время в секундах. Этот конвертер определяет точность по количеству цифр во временной метке:
| Цифры | Точность | Пример |
|---|---|---|
| 10 | Секунды | 1609459200 |
| 13 | Миллисекунды | 1609459200000 |
| 16 | Микросекунды | 1609459200000000 |
Отрицательная временная метка содержит один дополнительный символ — знак минус, поэтому -1609459200 (11 символов, 10 цифр) по-прежнему интерпретируется как значение в секундах. Любое другое количество цифр считается обычным значением в секундах. Значения в миллисекундах и микросекундах перед применением приведённой выше формулы для секунд делятся соответственно на 1 000 или 1 000 000.
Формат времени с 12 и 24 часами
Конвертер предлагает два способа отображения времени суток.
- 24-часовой формат отсчитывает часы от 0 до 23 без обозначений AM и PM. Программисты иногда называют его военным временем. Время 3:00 после полудня записывается как 15:00.
- 12-часовой формат отсчитывает часы от 1 до 12, добавляя AM для периода от полуночи до полудня и PM для периода от полудня до полуночи. Время 15:00 в 24-часовом формате превращается в 3:00 PM.
24-часовой формат является стандартным в большинстве стран Европы, Латинской Америки и Азии, а также в научной, военной и медицинской сфере во всём мире. 12-часовой формат по-прежнему широко используется в повседневной жизни в США, Канаде и некоторых других англоязычных странах.
Поддерживаемый диапазон дат
Этот конвертер принимает любые временные метки от -62135596800 до 253402300799. Это охватывает все даты от 1 января года 1 до 31 декабря 9999 г. в пролептическом григорианском календаре, то есть современном календаре, распространённом на период до его введения в 1582 году. Временные метки за пределами этого диапазона отклоняются с ошибкой диапазона.
Проблема года 2038
Многие старые компьютерные системы хранят временную метку Unix как знаковое целое число размером 32 бита, которое может отсчитывать только до 2 147 483 647. Такое количество секунд после эпохи приходится на 19 января 2038 г., 03:14:07 UTC. После этого момента неисправленная 32-битная система переполняется, возвращается к отрицательному числу и интерпретирует дату как относящуюся к 1901 году, а не к 2038. Это известно как проблема года 2038. Она затрагивает не все системы: современное программное обеспечение, хранящее временные метки в числах размером 64 бита или в обычных числах, как это делает JavaScript, может представлять даты на тысячи лет позже 2038 года без переполнения.
Распространённые применения временных меток Unix
Временные метки Unix используются во многих областях вычислительной техники, поскольку они компактны и их легко сравнивать или сортировать:
- Строки базы данных используют их для записи времени создания или последнего изменения записи.
- Веб-серверы используют их в заголовках HTTP и файлах cookie для управления кэшированием и сроком действия.
- Файлы журналов снабжают каждое событие такой меткой, чтобы записи можно было расположить в правильном порядке.
- Git и другие системы управления версиями таким способом записывают время создания коммитов.
- Веб-API используют их для указания времени создания или последнего обновления данных.
Часто задаваемые вопросы
Что такое эпоха Unix? Эпоха Unix — это полночь по UTC 1 января 1970 г.. Это нулевая точка, от которой отсчитываются все временные метки Unix.
Включает ли временная метка Unix високосные секунды? Нет. Время Unix считает ровно 86 400 секунд в сутках и игнорирует високосные секунды, которые иногда добавляются к UTC, поэтому оно немного расходится с астрономическим временем.
Может ли временная метка Unix быть отрицательной? Да. Отрицательное значение обозначает дату до 1 января 1970 г..
Почему моя временная метка содержит 13 цифр вместо 10?
Временная метка из 13 цифр измеряется в миллисекундах, а не в секундах. Метод Date.now() в JavaScript и многие веб-API возвращают временные метки в миллисекундах, поэтому значения из 13 цифр часто встречаются в веб-разработке.
Одинакова ли временная метка Unix во всех часовых поясах? Само число не связано с каким-либо часовым поясом. Оно всегда отсчитывает секунды от эпохи по UTC. Чтобы преобразовать его в местные дату и время, нужно прибавить смещение соответствующего часового пояса, поэтому результат этого конвертера зависит от часового пояса устройства, на котором он работает.
Какую самую позднюю дату может обработать этот конвертер? 31 декабря 9999 г. в 23:59:59 UTC — это временная метка 253402300799. Самая ранняя дата — 1 января года 1, 00:00:00 UTC, с временной меткой -62135596800.