Конвертер меток времени
Конвертируйте метки времени Unix в удобочитаемые даты и обратно — в секундах или миллисекундах, с выводом UTC, ISO 8601 и локального времени рядом друг с другом.
- Файлы никогда не покидают ваше устройство
- Бесплатно, без регистрации
- Без водяных знаков
- Работает офлайн после загрузки
Как пользоваться: конвертер меток времени
- 1
Вставьте метку времени или выберите дату
Секунды и миллисекунды определяются автоматически.
- 2
Смотрите все форматы
Показываются UTC, ISO 8601, локальное время и относительное время.
- 3
Скопируйте нужное
Каждый формат копируется одним кликом.
Почему почти все системы считают время именно так
Метка времени Unix — это просто количество секунд, прошедших с полуночи UTC 1 января 1970 года: произвольная точка отсчёта, выбранная десятилетия назад, которая с тех пор стала практически универсальным способом представления момента времени внутри компьютерной системы. Привлекательность в том, что дата и время сводятся к одному легко сравниваемому и легко хранимому целому числу: проверка того, что один момент раньше другого, — это простое числовое сравнение, а не календарное вычисление, а хранение занимает фиксированный, предсказуемый объём места независимо от того, к какому веку относится дата. Именно поэтому она лежит в основе всего — от столбцов времени в базах данных до ответов API и записей в лог-файлах, — хотя само по себе число ничего не говорит человеку, смотрящему на него напрямую, что и есть вся причина существования такого конвертера.
Как с первого взгляда отличить секунды от миллисекунд
Метка времени Unix, представляющая текущий момент в секундах, состоит из десяти цифр, а тот же самый момент, выраженный в миллисекундах, — из тринадцати: три дополнительные цифры для точности до тысячных долей секунды. Эта разница в длине — быстрый и надёжный способ определить, в какой единице измерена данная цифра, и она же объясняет два самых частых и самых запутанных сценария ошибок при неверном предположении. Передача значения в миллисекундах коду, ожидающему секунды, умножает видимую дату примерно на тысячу, и она оказывается где-то в 55000 году — эффектно и очевидно неправильно. Передача значения в секундах коду, ожидающему миллисекунды, делает обратное: реальное прошедшее время делится примерно на тысячу, из-за чего интерпретируемая дата оказывается где-то в 1970 году — достаточно близко к правдоподобной дате, чтобы иногда её принимали за настоящую ошибку где-то ещё, а не за несовпадение единиц измерения.
Почему UTC — для хранения, а локальное время — для экрана
Необработанная метка времени Unix вообще не несёт информации о часовом поясе — это просто счётчик прошедших секунд, одинаковый в любой точке Земли в данный момент, — и именно момент преобразования её в читаемую дату это то место, где для отображения приходится выбирать часовой пояс. Хранение и логирование событий в UTC (или в виде самой необработанной метки времени, которая по определению не зависит от часового пояса) означает, что каждая запись в системе означает ровно один и тот же момент независимо от того, в каком часовом поясе находится сервер, база данных или человек, читающий лог. Преобразование в локальное время — это решение уровня отображения, принимаемое только тогда, когда на значение действительно смотрит человек, поэтому этот инструмент чётко разделяет их: UTC и ISO 8601 — значения, которые стоит хранить и сравнивать, локальное время — версия, которую стоит читать.
Проблема 2038 года и почему она не затронет этот инструмент
Значительная часть более старой инфраструктуры — устаревший код на C, некоторые встроенные системы, определённые старые типы столбцов баз данных — хранит метку времени Unix в знаковом 32-битном целом числе, у которого есть жёсткий предел: оно переполняется в 03:14:07 UTC 19 января 2038 года и переходит к дате в 1901 году — ошибка той же природы, что и проблема Y2K, но коренящаяся в ограничениях двоичных целых чисел, а не в двузначных годах. JavaScript представляет числа как 64-битные значения с плавающей точкой, у которых запас гораздо больше и которые не подвержены именно этому переполнению, поэтому метка времени, вычисленная в этом инструменте, не затронута — проблема касается той системы, которая изначально создала конвертируемую метку времени, а не самого преобразования, происходящего здесь.
Часто задаваемые вопросы
Моя метка времени в секундах или миллисекундах?
Инструмент определяет это сам. Текущая метка времени Unix в секундах состоит из 10 цифр, в миллисекундах — из 13. Если дата получается в 1970 году, вы передали миллисекунды вместо секунд; если дата попадает в 55000 год — наоборот.
Что такое эпоха Unix?
Полночь UTC 1 января 1970 года — нулевая точка, от которой отсчитывает время почти каждая система. Отрицательные метки времени валидны и означают даты до этой точки — инструмент их корректно обрабатывает.
Что такое проблема 2038 года?
Системы, хранящие Unix-время в знаковом 32-битном целом числе, переполняются 19 января 2038 года и переходят к 1901 году. JavaScript использует 64-битные числа с плавающей точкой, поэтому этот инструмент не затронут, но устаревший код на C и старые столбцы баз данных — затронуты.
Какой часовой пояс подразумевается под «локальным временем»?
Часовой пояс вашего устройства, считанный из браузера. Строки UTC и ISO 8601 не зависят от часового пояса — именно их стоит хранить и логировать, а локальное время нужно только для отображения.
Частые задачи: конвертер меток времени
Вам также может понадобиться
Декодер JWT
Декодирование и анализ JSON Web Token
Калькулятор возраста
Точный возраст в годах, месяцах и днях
Генератор хешей
MD5, SHA-1, SHA-256, SHA-384 и SHA-512
Кодировщик и декодировщик Base64
Кодирование и декодирование Base64 и Base64URL
Форматировщик CSS
Форматирование и минификация таблиц стилей
Минификатор CSS
Сжимайте таблицы стилей настоящим минификатором, понимающим CSS
Форматировщик HTML
Аккуратное форматирование и расстановка отступов в HTML
Форматировщик JavaScript
Форматирование JS и TypeScript настоящим парсером