Перейти к основному содержимому
FreeOnlineTools Go
Русский
Объяснение

Что такое Unix-метка времени? Полное объяснение epoch-времени

Автор: FreeOnlineTools Team · Обновлено 2026-09-02

Быстрый ответ

Unix timestamp — количество секунд с 1 января 1970, 00:00:00 UTC (Unix epoch). Timezone-independent и легко сравним. JavaScript использует миллисекунды (13 цифр); Unix и большинство API — секунды (10 цифр). Используйте наш бесплатный Timestamp Converter.

Введение

Unix timestamp (также Unix epoch time, POSIX time или Unix time) — количество секунд с 1 января 1970, 00:00:00 UTC —момент, известный как Unix epoch. Timestamps широко используются в ОС, базах данных, логах и API, так как timezone-independent (всегда UTC), легко сравнимы и компактны. Однако не человеко-читаемы —1693526400 бессмысленно без конвертации.

Шаг за шагом

  1. Поймите эпоху Unix

    Эпоха Unix — 1 января 1970 года, 00:00:00 по всемирному координированному времени (UTC). Временная метка Unix — это количество секунд с этого момента. Положительные временные метки находятся после эпохи; перед ним стоят отрицательные метки времени (поддерживаются некоторыми системами).

  2. Отличать секунды от миллисекунд

    Временные метки Unix обычно выражаются в секундах (10 цифр по состоянию на 2026 год, например 1693526400). Date.now() и Date.getTime() JavaScript возвращают миллисекунды (13 цифр, например, 1693526400000). Всегда проверяйте, какую единицу измерения ожидает API — их смешивание является наиболее распространенной ошибкой временных меток.

  3. Понимание независимости часового пояса

    Временные метки Unix всегда указаны в формате UTC. Они не зависят от часового пояса пользователя. Чтобы отобразить временную метку в определенном часовом поясе, преобразуйте ее в дату и примените смещение часового пояса. Это делает временные метки идеальными для хранения и сравнения.

  4. Узнайте о проблеме 2038 года

    Системы, использующие 32-битные целые числа со знаком для меток времени, переполнятся 19 января 2038 года, 03:14:07 UTC — «проблема Y2038». Системы, использующие 64-битные целые числа или числа JavaScript (64-битные числа с плавающей запятой), не затрагиваются. Современные системы в значительной степени безопасны к 2038 году, но устаревшие встроенные системы могут и не быть таковыми.

Примеры

Временная метка известной даты

Вход: 2023-09-01 00:00:00 UTC

Выход: 1693526400 (секунды) или 1693526400000 (миллисекунды)

Эпоха Unix

Вход: 1970-01-01 00:00:00 UTC

Выход: 0

Граница проблемы Y2038

Вход: 2038-01-19 03:14:07 UTC

Выход: 2147483647 (максимум 32-битное целое число со знаком)

Распространенные проблемы

  • Смешение секунд и миллисекунд. JavaScript использует миллисекунды (Date.now()), Unix и большинство APIs используют секунды. Разделите на 1000, чтобы преобразовать мс в секунды; умножьте на 1000 в обратном порядке.
  • Путаница с часовыми поясами — временные метки указаны в формате UTC. При отображении конвертируйте в местный часовой пояс пользователя или указывайте UTC. Не применяйте смещения к необработанной метке времени.
  • Проблема 2038 года — переполнение меток времени 32-битного знакового целого числа 19 января 2038 года. Чтобы избежать этого, используйте 64-битные целые числа или числа JavaScript.
  • Отрицательные временные метки — даты до 1 января 1970 г. имеют отрицательные временные метки. Некоторые системы их не поддерживают.

Советы

  • Всегда проверяйте, ожидает ли API секунды или миллисекунды — это наиболее распространенная ошибка временной метки.
  • Используйте строки ISO 8601 (например, «2023-09-01T00:00:00Z») для удобочитаемых временных меток в APIs; используйте эпоху Unix для хранения и вычислений.
  • JavaScript Date.now() возвращает миллисекунды; разделите на 1000 и пол, чтобы получить секунды.
  • Используйте наш конвертер временных меток для преобразования временных меток в удобочитаемые даты в вашем браузере.

Сопутствующие инструменты

Связанные руководства

Ссылки