Разработчика

Конвертер Unix

Преодолейте разрыв между временем epoch и читаемыми датами. Преобразуйте любую метку времени Unix в читаемую дату или наоборот — плюс отображение текущей метки времени в реальном времени одним кликом.

Этот инструмент вам помог?

Что такое Конвертер Unix?

Конвертер Unix Timestamp — этоispensable инструмент для разработчиков, который соединяет машиночитаемое время эпохи и человекочитаемые даты. Unix-время (также называемое временем эпохи) измеряет количество секунд, прошедших с 1 января 1970 00:00:00 UTC — момента, когда операционная система Unix впервые была запущена на компьютере PDP-11 в лабораториях Bell Labs. Эта дата известна как Unix-эпоха и служит универсальной точкой отсчёта времени в вычислительной технике. Конвертер работает в двух направлениях: введите Unix timestamp (обычно 10-значное число для секунд или 13-значное для миллисекунд), чтобы увидеть соответствующую человекочитаемую дату, или введите дату и время, чтобы получить её эквивалентный Unix timestamp. Живое отображение текущего timestamp обновляется каждую секунду, чтобы вы могли захватить точный момент одним кликом. Date.now() из JavaScript и большинство современных API возвращают timestamp в миллисекундах (13 цифр), тогда как базы данных и устаревшие системы часто используют секунды (10 цифр) — путаница между ними является одной из наиболее частых ошибок в веб-разработке. Конвертер также обрабатывает отрицательные timestamp, представляющие даты до эпохи (31 декабря 1969 и ранее). Переключайте между UTC и местным временем для проверки значений, чувствительных к часовому поясу.

Когда использовать этот калькулятор

  • Вы отлаживаете API, которая возвращает метки времени Unix, и вам нужно прочитать их как человеческие даты
  • Вы пишете код, который хранит или сравнивает даты, и вам нужно преобразовать между меткой времени и форматом даты
  • Вам нужна текущая метка времени Unix для записи в журнале, вызова API или записи в базе данных
  • Вы анализируете журналы сервера, где метки времени в формате epoch
  • Вы хотите проверить, что метка времени в вашем коде соответствует правильной дате и времени
  • Вы работаете с базами данных или файловыми системами, которые используют метки времени Unix для метаданных файлов

Шаги:

  1. Введите метку времени Unix, чтобы преобразовать её в читаемую дату.
  2. Или введите дату/время, чтобы преобразовать её в метку времени Unix.
  3. Нажмите кнопку текущего времени, чтобы получить текущую метку времени Unix.
  4. Скопируйте результаты кнопкой копирования.

Формула

Метка времени → Дата: new Date(timestamp × 1000) Дата → Метка времени: Math.floor(date.getTime() / 1000) Эпоха Unix: 1 января 1970 00:00:00 UTC Максимальная 32-битная метка: 19 января 2038 (03:14:07 UTC)

Варианты использования

  • Отладка ответов API с метками времени
  • Преобразование значений меток времени базы данных
  • Установка дат истечения в коде
  • Анализ логов и интерпретация данных временных рядов

Основные преимущества

  • Мгновенное преобразование между Unix timestamp и человекочитаемыми датами в обоих направлениях
  • Текущий Unix timestamp в реальном времени обновляется каждую секунду с кнопкой копирования одним кликом
  • Переключение между UTC и местным временем для проверки значений, чувствительных к часовому поясу
  • Обработка как 10-значного (секунды), так и 13-значного (миллисекунды) форматов timestamp
  • Обработка отрицательных timestamp для дат до Unix-эпохи (до 1970 года)
  • Бесплатно, мгновенно и работает в вашем браузере без регистрации или сбора данных

Советы профессионалов

  • Всегда храните timestamp в UTC в базах данных — конвертируйте в местное время только для отображения.
  • Помните, что Date.now() из JavaScript возвращает миллисекунды. Для получения секунд: Math.floor(Date.now() / 1000).
  • Используйте 64-битные целые числа для хранения timestamp в новых системах, чтобы избежать проблемы переполнения 2038 года.
  • При отладке неожиданных дат сначала проверьте, находится ли timestamp в секундах или миллисекундах — разница в 1000 раз.
  • Для токенов аутентификации API или подписанных URL вычислите timestamp истечения на стороне сервера и сравните с текущим Unix-временем для проверки действительности.

Распространенные ошибки

  • Забывать, что Date.now() из JavaScript возвращает миллисекунды — всегда делите на 1000 при сравнении с timestamp, основанными на секундах.
  • Предполагать, что все API используют один и тот же формат — некоторые возвращают секунды, другие миллисекунды. Всегда проверяйте документацию API.
  • Не учитывать разницу в часовых поясах между местом создания timestamp и местом его просмотра, из-за чего даты кажутся различающимися на несколько часов.
  • Использовать 32-битные целые числа для хранения timestamp в новых системах вместо 64-битных, которые переполнятся в 2038 году и сломают приложение.

Объяснение ключевых терминов

Unix timestamp: Количество секунд, прошедших с 1 января 1970 00:00:00 UTC (Unix-эпоха)
Эпоха: Эталонная точка для измерения времени в вычислительной технике; для Unix это 1 января 1970 00:00:00 UTC
UTC (Всемирное координированное время): Основной временной стандарт, используемый во всём мире, независимый от любого часового пояса
Проблема 2038 года: Дата, когда 32-битные Unix timestamp переполнятся, заставляя системы переключиться на отрицательные значения и отображать даты вокруг 1901 года.
Timestamp в миллисекундах: 13-значный Unix timestamp, где время измеряется в миллисекундах вместо секунд, используется JavaScript Date.now() и большинством современных API.

Связанные понятия

  • Эпоха Unix: 1 января 1970 00:00:00 UTC, опорная точка, от которой измеряются все метки времени Unix
  • Время Epoch: система представления времени как количества секунд, прошедших с эпохи Unix
  • UTC (всемирное координированное время): основной временной стандарт, по которому мир регулирует часы и время, независимый от часового пояса
  • Проблема 2038 года: дата, когда 32-битные метки времени Unix переполнятся, потенциально заставив системы интерпретировать дату как 1901
  • ISO 8601: международный стандарт для представления дат и времён (например, 2024-06-29T12:00:00Z) в качестве альтернативы меткам времени Unix

Пример

Текущая метка: 1719676800 → Дата: 29 июня 2024 12:00:00 PM UTC. Преобразование даты: «1 января 2025 00:00:00 UTC» → Метка: 1735689600.

Интерпретация результатов

Конвертер работает в двух направлениях: ввод метки времени Unix даёт читаемую дату, а ввод даты даёт метку времени Unix. Текущее время Unix отображается вверху с кнопкой обновления, поэтому вы всегда можете видеть метку в реальном времени, ничего не вводя. Метки времени Unix считают секунды с 1 января 1970 UTC (эпоха Unix). Они независимы от часового пояса — одна и та же метка представляет один и тот же момент в любой точке Земли. Когда вы вводите дату, конвертер использует ваше местное смещение часового пояса для вычисления метки, но вы можете переключиться на UTC, если вам нужны результаты, нейтральные к часовому поясу. Проблему 2038 года стоит понять: 32-битные знаковые целые числа переполняются 19 января 2038 года, что означает, что унаследованные системы, использующие 32-битные метки, перейдут к отрицательным значениям. Современные системы используют 64-битные метки, которые не переполнятся миллиарды лет. Если вы столкнётесь с неожиданными датами около 1901 или 2038 года, вероятной причиной является 32-битное переполнение.

Часто задаваемые вопросы

Что такое метка времени Unix?
Метка времени Unix — это количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC (эпоха Unix). Это универсальная временная referencia, используемая в программировании и вычислениях.
Почему метки времени полезны?
Метки времени предоставляют независимый от часового пояса способ хранения и сравнения времени. Они используются в базах данных, API, журналировании и любой системе, нуждающейся в точном отслеживании времени.
Что такое проблема 2038 года?
19 января 2038 года 32-битные метки времени Unix переполнятся, поскольку будет превышено максимальное 32-битное знаковое целое число (2 147 483 647). Современные системы используют 64-битные метки времени, чтобы избежать этого.
В чём разница между секундами и миллисекундами в метках времени?
Стандартные метки времени Unix указаны в секундах. JavaScript и многие современные API используют миллисекунды (умножьте секунды на 1000). Если вы получаете неожиданные даты, проверьте, указана ли метка времени в секундах или миллисекундах — метка времени в миллисекундах, интерпретированная как секунды, покажет дату в далёком будущем, и наоборот.
Почему моя метка времени показывает дату, отличную от ожидаемой?
Наиболее распространённые причины: метка времени указана в миллисекундах вместо секунд (или наоборот), разница часовых поясов между местом генерации метки и местом просмотра, или 32-битное переполнение для очень больших или очень маленьких значений. Переключайтесь между UTC и местным временем, чтобы исключить проблемы с часовым поясом.
Могу ли я преобразовать метки времени до 1970 года?
Да. Метки времени до 1 января 1970 года представляются отрицательными числами. Например, -86400 представляет 31 декабря 1969 года 00:00:00 UTC. Конвертер корректно обрабатывает отрицательные метки времени.
Какой формат обычно используют базы данных для меток времени?
Большинство реляционных баз данных (PostgreSQL, MySQL) поддерживают как метки времени Unix (в виде целочисленных столбцов), так и нативные типы datetime/timestamp. TIMESTAMPTZ в PostgreSQL хранит метки времени с учётом часового пояса внутри. Выбор зависит от потребностей вашего приложения — метки времени Unix проще для сравнений, а нативные типы datetime более читаемы в запросах.
Как обрабатывать преобразования часовых поясов с метками времени Unix?
Метки времени Unix всегда в UTC внутри. Для отображения в местном часовом поясе примените смещение часового пояса при отображении. Большинство языков программирования имеют встроенные функции преобразования часовых поясов. В JavaScript: new Date(timestamp * 1000).toLocaleString('en-US', { timeZone: 'America/New_York' }).
Каково максимальное значение метки времени Unix?
64-битное знаковое целое число может представлять метки времени до примерно 292 миллиардов лет от эпохи — далеко за пределами возраста вселенной. Практически 64-битные метки времени никогда не переполнятся. 32-битный предел (2 147 483 647 секунд) соответствует 19 января 2038 года 03:14:07 UTC.
Почему некоторые системы отходят от меток времени Unix?
Метки времени Unix теряют читаемость для людей и не элегантно обрабатывают високосные секунды, изменения часовых поясов или реформы календаря. Строки ISO 8601 (например, 2024-06-29T12:00:00Z) самодокументированы и учитывают часовой пояс. Однако метки времени Unix остаются популярными благодаря своей простоте, компактности и независимости от часового пояса при хранении и вычислениях.

Откройте больше инструментов

Свежая подборка из всей нашей библиотеки инструментов.