Конвертер даты и времени

Конвертируйте между метками времени Unix, миллисекундами JavaScript, ISO 8601, ISO 9075, RFC 3339, RFC 7231, Mongo ObjectID и серийными датами Excel. Автоматически определяет формат ввода.

Преобразуйте один момент времени во все нужные вам форматы.

Пояснение форматов меток времени

Секунды или миллисекунды

Самая частая ошибка при работе с датами — путаница между ними. Метки времени Unix считают секунды с 1970-01-01 UTC; Date.now() в JavaScript считает миллисекунды. Передайте метку Unix напрямую в конструктор Date, не умножив на 1000, и вы окажетесь в январе 1970 года. Правило простое: число из 10 цифр — это секунды, а из 13 цифр — миллисекунды, именно так здесь и работает автоопределение.

Стандарты и их различия

  • ISO 8601 — базовый стандарт: 2024-01-15T10:30:00.000Z. Буква T отделяет дату от времени, а Z означает UTC.
  • RFC 3339 — более строгий профиль ISO 8601 для интернет-протоколов. Требует явного смещения, поэтому пишет +00:00 вместо Z.
  • ISO 9075 — форма SQL-стандарта, 2024-01-15 10:30:00 — пробел вместо T и без часового пояса. Именно так выводят большинство баз данных.
  • RFC 7231 — формат HTTP-даты в заголовках Date, Expires и Last-Modified, всегда в GMT.

Два нестандартных формата

Mongo ObjectID занимает 12 байт, первые четыре из которых — время создания в секундах Unix, поэтому каждый ObjectID содержит в себе метку времени. Этот инструмент извлекает её при декодировании; при генерации он заполняет оставшиеся восемь байт нулями, а не выдумывает значения машины и счётчика.

Серийные даты Excel считают дни с 1899-12-30, а дробная часть обозначает время суток. Странная начальная точка существует, потому что Excel намеренно воспроизводит ошибку Lotus 1-2-3, которая считала 1900 високосным годом. Использование 1899-12-30 как нулевого дня выравнивает все даты начиная с марта 1900 года, поэтому конвертер и использует её.

Всё это — один миг

Что бы вы ни ввели, инструмент разбирает это в единый JavaScript-объект Date и заново отрисовывает этот один миг во всех одиннадцати форматах. Ничего никуда не отправляется — преобразование выполняется целиком в вашем браузере.

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

Почему моя метка Unix показывает 1970?
Почти наверняка вы передали секунды туда, где ожидались миллисекунды. Умножьте на 1000 или выберите «Секунды Unix» как формат ввода, и инструмент сделает это за вас.
В чём разница между ISO 8601 и RFC 3339?
RFC 3339 — более строгое подмножество ISO 8601 для интернет-протоколов. Любая дата RFC 3339 является корректной датой ISO 8601, но не наоборот — RFC 3339 всегда требует числового смещения UTC, например +00:00, тогда как ISO 8601 также допускает Z, недельные и порядковые даты.
Можно ли получить метку времени из Mongo ObjectID?
Да. Первые 4 байта (8 шестнадцатеричных символов) ObjectID — это время создания в секундах Unix. Вставьте ObjectID, и инструмент декодирует этот момент во все остальные форматы.
Почему эпоха Excel — 1899-12-30, а не 1900-01-01?
Excel намеренно сохранил ошибку Lotus 1-2-3, которая считает 1900 високосным годом. Сдвиг эпохи назад на 1899-12-30 компенсирует возникающее расхождение на единицу, поэтому все даты начиная с марта 1900 года конвертируются верно.
Отправляются ли мои данные на сервер?
Нет. Всё разбиение и форматирование происходит локально в вашем браузере с использованием стандартного API Date. Ничего не загружается и не протоколируется.