Как конвертировать Unix-timestamp'ы
Unix-timestamp'ы — это то, как компьютеры хранят и обмениваются временем — одно число, представляющее секунды с 1 января 1970 года. Вы найдёте их в ответах API, записях баз данных, файлах журналов и JWT-токенах. Когда вам нужно знать, какой дате соответствует 1711824000, нужен конвертер.
Как выглядит Unix-timestamp
| Timestamp | Тип | Читаемая дата |
|---|---|---|
| 0 | Секунды | 1 янв. 1970, 00:00:00 UTC |
| 1000000000 | Секунды | 9 сент. 2001, 01:46:40 UTC |
| 1711824000 | Секунды | 31 марта 2024, 00:00:00 UTC |
| 1711824000000 | Миллисекунды | 31 марта 2024, 00:00:00 UTC |
Разница между секундами и миллисекундами — три дополнительных нуля. 10-значное число в секундах; 13 цифр — в миллисекундах.
Как конвертировать timestamp'ы
- Введите timestamp или дату — вставьте Unix-timestamp, чтобы конвертировать его в читаемую дату, или введите дату, чтобы получить timestamp.
- Проверьте формат — конвертер автоматически определяет секунды или миллисекунды по длине числа.
- Прочитайте результат — увидьте дату в вашем местном часовом поясе, в UTC и в формате ISO 8601.
Где вы встречаете timestamp'ы
- Ответы API — большинство REST API возвращают даты как Unix-timestamp'ы:
"created_at": 1711824000 - JWT-токены — заявления
iat(issued at) иexp(expiration) — это Unix-timestamp'ы - Записи баз данных — многие базы хранят timestamp'ы как целые числа для эффективной сортировки и сравнения
- Файлы журналов — серверные журналы часто префиксируют записи epoch-timestamp'ами
- Cron-задачи — системы планирования ссылаются на время в формате Unix
Timestamp'ы в коде
Быстрая конвертация в распространённых языках:
JavaScript: new Date(1711824000 * 1000) (JS использует миллисекунды)
Python: datetime.fromtimestamp(1711824000)
Текущее время: Date.now() (JS), time.time() (Python)
Советы
- Умножайте на 1000 для JavaScript — объект
DateJS ожидает миллисекунды, но большинство API возвращают секунды. Забыть умножить — это самая частая timestamp-ошибка. - Всегда указывайте UTC — при конвертации будьте явны о часовом поясе. «31 марта в полночь» — это разный timestamp, в зависимости от того, UTC, EST или PST.
- Используйте ISO 8601 для отображения — после конвертации форматируйте даты как
2024-03-31T00:00:00Zдля недвусмысленной коммуникации между часовыми поясами. - Добавьте конвертер в избранное — если вы работаете с API или базами данных, вы будете конвертировать достаточно часто, чтобы хотеть инструмент в одном нажатии.
Часто задаваемые вопросы
Что такое Unix epoch-время?
Unix epoch-время (также называемое POSIX-временем или Unix-timestamp) — это количество секунд, прошедших с 1 января 1970 года в 00:00:00 UTC. Это стандартный способ, которым компьютеры представляют время внутренне.
В чём разница между timestamp'ами в секундах и миллисекундах?
Unix-timestamp'ы в секундах состоят из 10 цифр (например, 1711824000). Timestamp'ы в миллисекундах состоят из 13 цифр (например, 1711824000000). JavaScript использует миллисекунды, большинство API и баз данных используют секунды. Конвертер автоматически определяет по длине.
Почему моё конвертированное время сдвинуто на несколько часов?
Timestamp'ы всегда в UTC. Конвертер отображает и UTC, и ваше местное время. Если результат не соответствует вашему ожиданию, вы, вероятно, сравниваете UTC-вывод с местным временем или наоборот.
Что произойдёт в 2038 году?
Системы, которые хранят Unix-timestamp'ы как 32-битные знаковые целые числа, переполнятся 19 января 2038 года. Большинство современных систем используют 64-битные целые числа, что расширяет диапазон далеко за пределы любых практических беспокойств.