Конвертер Unix Timestamp
Текущее время
Timestamp (секунды)
--
Timestamp (миллисекунды)
--
ISO 8601
--
Unix Timestamp Converter — полное руководство по конвертации времени
Что такое Unix Timestamp и зачем он нужен?
Unix Timestamp (также известный как Unix time, POSIX time, Epoch time или Unix epoch) — это система представления даты и времени в виде одного целого числа: количества секунд (или миллисекунд), прошедших с 1 января 1970 года в 00:00:00 по UTC. Эта точка отсчёта называется Unix Epoch (эпоха Unix).
Функции нашего конвертера
Наш инструмент предоставляет три основных режима работы с Unix временем. Все вычисления выполняются локально в вашем браузере — данные не отправляются на сервер.
Timestamp → Дата
Преобразует Unix timestamp в читаемую дату и время с учётом часового пояса.
- Автоматическое определение секунд/миллисекунд
- Выбор часового пояса (13 зон + локальное время)
- Несколько форматов вывода (полный, короткий, ISO 8601)
- Отображение дополнительной информации (день недели, неделя года)
Дата → Timestamp
Конвертирует указанную дату и время в Unix timestamp.
- Выбор даты через календарь
- Точная установка времени (часы:минуты)
- Учёт часового пояса для корректного расчёта
- Вывод в секундах, миллисекундах или обоих форматах
Текущее время
Отображает текущий Unix timestamp в реальном времени.
- Живое обновление каждую секунду
- Timestamp в секундах и миллисекундах
- Текущая дата и время в локальном часовом поясе
- Формат ISO 8601 для совместимости
Как работает конвертация
Понимание принципов работы с timestamp поможет избежать распространённых ошибок при программировании.
Секунды vs Миллисекунды
Критически важное различие: разные языки программирования используют разные единицы измерения времени.
1704067200Используют:
• PHP:
time()• Python:
time.time()• Java:
System.currentTimeMillis() / 1000• Unix команды:
date +%s
1704067200000Используют:
• JavaScript:
Date.now()• Java:
System.currentTimeMillis()• Python:
datetime.now().timestamp() * 1000• Go:
time.Now().UnixMilli()
Часовые пояса и UTC
Unix timestamp по определению не зависит от часового пояса — он всегда отсчитывается от UTC. Однако при отображении людям и при вводе дат необходимо учитывать локальное время.
| Город | Часовой пояс | GMT+ | Пример времени |
|---|---|---|---|
| Москва | Europe/Moscow | +3 | 12:00 MSK = 09:00 UTC |
| Волгоград | Europe/Volgograd | +3 | 12:00 VOLT = 09:00 UTC |
| Екатеринбург | Asia/Yekaterinburg | +5 | 14:00 YEKT = 09:00 UTC |
| Омск | Asia/Omsk | +6 | 15:00 OMST = 09:00 UTC |
| Красноярск | Asia/Krasnoyarsk | +7 | 16:00 KRAT = 09:00 UTC |
| Иркутск | Asia/Irkutsk | +8 | 17:00 IRKT = 09:00 UTC |
| Якутск | Asia/Yakutsk | +9 | 18:00 YAKT = 09:00 UTC |
| Владивосток | Asia/Vladivostok | +10 | 19:00 VLAT = 09:00 UTC |
| Магадан | Asia/Magadan | +11 | 20:00 MAGT = 09:00 UTC |
| Камчатка | Asia/Kamchatka | +12 | 21:00 PETT = 09:00 UTC |
Область применения Unix Timestamp
Timestamp — фундаментальная концепция в программировании и информационных системах. Ниже приведены основные сценарии использования с реальными примерами.
Базы данных
Хранение времени создания и изменения записей. Timestamp позволяет легко сортировать, фильтровать и сравнивать даты независимо от часовых поясов пользователей.
SELECT * FROM posts WHERE created_at > 1704067200ORDER BY created_at DESC
API и межсервисное взаимодействие
При передаче данных между сервисами timestamp устраняет неоднозначности часовых поясов. Все сервисы работают с единым форматом времени.
{"event":"login","user_id":123,"timestamp":1704067200}
Логирование событий
Системные логи используют timestamp для точной временной маркировки событий. Это критично для отладки, аудита безопасности и расследования инцидентов.
[1704067200] ERROR: Database connection failed
Сертификаты и токены
SSL/TLS сертификаты, JWT токены и временные ссылки используют timestamp для определения срока действия (exp — expiration time).
{"exp":1704153600,"iat":1704067200}
Планировщики задач
Cron, отложенные задачи, напоминания — все системы планирования используют timestamp для вычисления времени выполнения.
Запустить через 3600 секунд (1 час)
Аналитика и метрики
Системы аналитики (Google Analytics, Metrika) используют timestamp для агрегации данных по временным интервалам: часы, дни, недели, месяцы.
pageviews per day FROM 1704067200 TO 1704153600
Историческая справка: почему 1970 год?
Выбор 1 января 1970 года в качестве точки отсчёта Unix времени не случаен. Эта дата стала компромиссом между несколькими факторами при разработке операционной системы Unix в Bell Labs.
Ключевые даты в истории Unix time
- 1969 год — разработчики Unix (Кен Томпсон, Деннис Ритчи) выбирали точку отсчёта. Рассматривались 1 января 1960 года (совпадало с запуском IBM System/360) и другие даты.
- 1970 год — окончательно выбрано 1 января 1970 года, 00:00:00 UTC. Эта дата была достаточно близка к моменту разработки, чтобы избежать отрицательных значений времени в ближайшем будущем.
- 19 января 2038 года — известная Проблема 2038 года. 32-битное знаковое целое переполнится (2³¹ − 1 = 2147483647 секунд). Системы с 32-битным time_t перестанут корректно работать.
- Решение — переход на 64-битное представление времени. 64-битный timestamp сможет представлять время в течение ~292 миллиардов лет.
Почему именно 1970?
- Технические ограничения: ранние компьютеры имели ограниченную память, и 32-битное представление времени было компромиссом между диапазоном и размером.
- Близость к текущей дате: на момент разработки (конец 1960-х) 1970 год был достаточно близко, чтобы не работать с отрицательными значениями.
- Стандартизация: POSIX стандарт (IEEE 1003.1) закрепил эту конвенцию, что обеспечило совместимость между Unix-подобными системами.
Исследования и технические детали
Работа с временем в программировании — сложная задача, которая порождает множество ошибок. Исследования показывают, что временные баги входят в топ-10 наиболее распространённых проблем.
Распространённые ошибки
-
Путаница секунд и миллисекунд
JavaScript использует миллисекунды, PHP — секунды. При передаче между языками возникает ошибка в 1000 раз. -
Игнорирование часовых поясов
Хранение локального времени вместо UTC приводит к ошибкам при работе с пользователями из разных регионов. -
Неучёт високосных секунд
UTC иногда добавляет високосную секунду для синхронизации с вращением Земли. Большинство систем игнорируют это, что может вызвать рассинхронизацию. -
Переполнение 32-бит
Системы, которые не обновились на 64-битное время, столкнутся с проблемой 2038 года.
Лучшие практики
-
Храните в UTC
Всегда сохраняйте timestamp в UTC. Конвертируйте в локальное время только при отображении пользователю. -
Используйте 64-бит
Убедитесь, что ваша система использует 64-битное представление времени (time_t в C/C++, int64 в Go). -
Явно указывайте единицы
В названиях переменных указывайте единицы:timestampSeconds,timestampMillis. -
Используйте ISO 8601 для людей
Для отображения и API используйте ISO 8601:2024-01-01T12:00:00Z.
Сравнение форматов представления времени
| Формат | Пример | Преимущества | Недостатки | Где используется |
|---|---|---|---|---|
| Unix Timestamp (сек) | 1704067200 |
Компактный, легко сравнивать | Не читаем для людей | Базы данных, API, логи |
| Unix Timestamp (мс) | 1704067200000 |
Высокая точность | Ещё менее читаем | JavaScript, Java |
| ISO 8601 | 2024-01-01T12:00:00Z |
Читаем, стандарт | Длиннее, сложнее парсить | REST API, JSON, человекочитаемый вывод |
| RFC 2822 | Mon, 01 Jan 2024 12:00:00 GMT |
Читаем, традиционен | Очень длинный | Email заголовки, HTTP |
| Локальный формат | 01.01.2024 15:00 |
Понятен пользователям | Зависит от региона | UI, отчёты для людей |
Полезные формулы и примеры
- 1 минута = 60 секунд
- 1 час = 3 600 секунд
- 1 день = 86 400 секунд
- 1 неделя = 604 800 секунд
- 1 год (не високосный) = 31 536 000 секунд
Через 24 часа: timestamp + 864007 дней назад: timestamp - 604800
const now = Date.now(); // мсconst sec = Math.floor(Date.now() / 1000);PHP:
$now = time(); // секунды$millis = time() * 1000;Python:
import timetimestamp = int(time.time())
Важное замечание о точности
- Unix timestamp не учитывает високосные секунды. Раз в несколько лет UTC добавляет дополнительную секунду для синхронизации с вращением Земли. Большинство систем игнорируют это.
- При работе с историческими датами (до 1970 года) могут возникнуть проблемы с отрицательными значениями в некоторых системах.
- Часовые пояса могут меняться из-за политических решений (например, отмена перехода на летнее время). Для исторических дат это может привести к неточностям.
- Для критических приложений (финансы, авиация) используйте специализированные библиотеки работы со временем (moment-timezone, date-fns-tz, pytz).