Конвертер времени Epoch
Преобразование меток времени Unix в даты UTC или даты в секунды эпохи.
Как пользоваться этим конвертером времени Epoch
- Выберите режим конвертации
Выберите «Epoch в дату» или «Дата в Epoch» в поле «Режим конвертации».
- Для конвертации Epoch в дату
Введите временную метку Unix в секундах в поле «Временная метка Epoch (секунды)».
- Для конвертации даты в Epoch
Выберите дату в поле «Дата в календаре», затем установите часы (UTC), минуты (UTC) и секунды (UTC) по мере необходимости.
- Посмотреть результат
Калькулятор показывает значение UTC, миллисекунды Unix и день недели.
Как работает этот конвертер времени epoch
Этот конвертер времени epoch выполняет преобразование между метками времени Unix и датами UTC в удобном для чтения формате. Время Unix — также называемое временем POSIX или временем epoch — это количество секунд, прошедших с начала эпохи Unix, которая определена как полночь UTC 1 января 1970 года (1970-01-01T00:00:00Z). Это представление в виде одного целого числа является стандартом де-факто для хранения и передачи меток времени в базах данных, API, лог-файлах, токенах JWT и практически во всех современных языках программирования. Конвертер работает в обоих направлениях: ввод числовой метки времени возвращает соответствующую дату UTC, день недели и эквивалент в миллисекундах, а ввод календарной даты и времени возвращает значение epoch в секундах и миллисекундах.
Время Unix = количество секунд, прошедших с 1970-01-01T00:00:00Z Чтобы преобразовать Unix-время 1 700 000 000 в дату: начиная с 1970-01-01 00:00:00 UTC, добавьте 1 700 000 000 секунд. Это составляет 19 675 дней, 17 часов, 46 минут и 40 секунд. Полученная дата UTC — 2023-11-14 в 22:13:20 UTC, что выпадает на вторник. Эквивалент в миллисекундах — 1 700 000 000 000. И наоборот, ввод 14 ноября 2023 года в 22:13:20 UTC возвращает значение эпохи ровно 1 700 000 000.
Метка времени 0 преобразуется в 1970-01-01 00:00:00 UTC (четверг). Эквивалент в миллисекундах — 0.
Метка времени 1,704,000,000 преобразуется в 2023-12-31 12:00:00 UTC (воскресенье). Ввод этой даты и времени в режиме «Дата в эпоху» возвращает 1,704,000,000.
- ✓ Все расчеты производятся в UTC. Для перевода в местное время необходимо применить соответствующее смещение часового пояса после конвертации.
- ✓ Високосные секунды не учитываются. Как и POSIX, этот конвертер считает, что в сутках ровно 86 400 секунд, что соответствует поведению большинства языков программирования и операционных систем.
- ✓ Отрицательные метки времени представляют даты до начала эпохи (1 января 1970 года). Например, −86400 соответствует 31 декабря 1969 года.
- ✓ Метки времени в миллисекундах следует разделить на 1 000 перед вводом; конвертер принимает секунды на входе и отображает эквивалент в миллисекундах в результатах.
- JavaScript Date.now() и Java System.currentTimeMillis() возвращают миллисекунды, а не секунды — разделите значение на 1 000 перед вводом или используйте вывод в миллисекундах для сравнения.
- Проблема 2038 года затрагивает 32-битные знаковые целые числа меток времени, которые переполнятся 19 января 2038 года в 03:14:07 UTC. Большинство современных систем перешли на 64-битные метки времени.
- При отладке ответов API или лог-файлов ищите метки времени, которые отличаются ровно на 3 600 или 7 200 секунд — это обычно указывает на примененное (или пропущенное) смещение часового пояса в процессе обработки.
- Время эпохи всегда монотонно возрастает (без учета високосных секунд), что делает его идеальным для сортировки событий, расчета длительности и создания уникальных идентификаторов на основе времени.
- IEEE Std 1003.1 (POSIX) — определение секунд с начала эпохи
- Происхождение эпохи Unix — документация The Unix Heritage Society и Bell Labs
- RFC 3339 — Дата и время в Интернете: метки времени
Что такое метки времени Unix?
Метка времени Unix — это количество секунд, прошедших с полуночи UTC 1 января 1970 года (эпоха Unix). Это целое число является стандартом де-факто для представления времени в базах данных, API, лог-файлах и большинстве языков программирования. Поскольку оно не зависит от часового пояса и монотонно возрастает, оно упрощает сортировку, расчет длительности и сравнение времени. JavaScript Date.now() и многие API возвращают миллисекунды (1,000 × секунд), поэтому разделите значение на 1,000 перед вводом миллисекунд здесь. Отрицательные метки времени представляют даты до 1970 года; например, −86400 — это ровно один день до начала эпохи.
Варианты использования времени эпохи для разработчиков
Разработчики используют метки времени Unix при сохранении времени событий в базах данных, сериализации дат в JSON API, генерации ключей кэша на основе времени и отладке записей в логах. В столбцах баз данных метки времени часто хранятся как целые числа для эффективного индексирования и запросов по диапазону. Ответы API часто возвращают секунды или миллисекунды эпохи, чтобы избежать неопределенности часовых поясов. При отладке преобразование необработанной метки времени из лога или JWT в понятную человеку дату быстро показывает, верно ли значение или оно смещено из-за часового пояса. Время эпохи также используется для ограничения частоты запросов, истечения срока действия сессий и генерации сортируемых уникальных идентификаторов в распределенных системах.
Часто задаваемые вопросы о конвертере времени эпохи
Что такое эпоха Unix?
Эпоха Unix — это точка отсчета, от которой измеряется время Unix: полночь UTC 1 января 1970 года (1970-01-01T00:00:00Z). Метка времени 0 соответствует этому моменту.
Почему в моей метке времени JavaScript больше цифр?
Метод Date.now() в JavaScript возвращает миллисекунды с начала эпохи, а не секунды. Разделите на 1000, чтобы перевести в формат секунд, используемый в этом инструменте, или сравнивайте напрямую с результатом в миллисекундах.
Можно ли вводить отрицательную метку времени?
Да. Отрицательные значения представляют даты до начала эпохи. Например, −86400 соответствует 1969-12-31T00:00:00Z, ровно за один день до начала эпохи.
Учитываются ли високосные секунды?
Нет, и это соответствует стандарту POSIX. Время POSIX предполагает, что в сутках ровно 86 400 секунд. 27 високосных секунд, добавленных с 1972 года, не учитываются по отдельности, поэтому UTC и Unix-время могут различаться на одну секунду в моменты вставки високосных секунд.
Что такое «проблема 2038 года»?
Системы, хранящие Unix-время в виде 32-битного знакового целого числа, переполнятся 19 января 2038 года в 03:14:07 UTC. Значение станет большим отрицательным числом, что приведет к датам в 1901 году. Большинство современных платформ используют 64-битные метки времени, которые не переполнятся более 290 миллиардов лет.