Что такое временная метка
Временная метка (timestamp) — это числовое значение, обозначающее момент времени. Самая распространенная — временная метка Unix: количество секунд (или миллисекунд), прошедших с 1 января 1970 года 00:00:00 UTC. Например, 1720780800 соответствует 2024-07-12 12:00:00 UTC. Временные метки встречаются повсюду: в программировании, логах, базах данных и API.
Зачем преобразовывать
- Чтение логов: логи полны временных меток, человеку их сложно прочитать, нужно переводить в читаемое время
- Отладка API: интерфейс возвращает временную метку, нужно проверить корректность
- Часовые пояса: преобразование метки UTC в локальное время для отображения
- Базы данных: хранится метка, а для показа требуется форматирование
Распространенные форматы времени
Временная метка Unix
- Секундная: 10 цифр (например, 1720780800)
- Миллисекундная: 13 цифр (например, 1720780800000, часто в JS/Java)
ISO 8601
Вида 2024-07-12T12:00:00Z, международный стандарт, часто используется в API. Буква Z в конце означает UTC.
Локальное время
Например, 2024-07-12 20:00:00, со смещением часового пояса, зависит от региона.
Инструмент преобразования временных меток от DocsAll
Используйте инструмент преобразования временных меток для быстрого перевода:
- Откройте инструмент временных меток
- Введите метку → автоматически отобразится читаемое время; или введите время → получите метку
- Поддерживается переключение между секундами и миллисекундами
- Скопируйте результат
Примеры преобразования
| Метка (секунды) | Время UTC | Пекинское время (UTC+8) |
|---|---|---|
| 0 | 1970-01-01 00:00 | 1970-01-01 08:00 |
| 1720780800 | 2024-07-12 12:00 | 2024-07-12 20:00 |
Частые подводные камни
Секунды против миллисекунд
Date.now() в JS возвращает миллисекунды (13 цифр), а time.time() в Python — секунды (10 цифр). Смешивание дает разницу в 1000 раз; перед преобразованием уточните единицу измерения.
Часовые пояса
Одна и та же временная метка отображается по-разному в разных часовых поясах. Пекинское время опережает UTC на 8 часов: 1720780800 в UTC — это полдень, а в Пекине — 20:00. Общепринятый подход — хранить UTC на бэкенде, а на фронтенде показывать время по часовому поясу пользователя.
Проблема 2038 года
32-битная временная метка Unix переполнится 19/01/2038. Современные системы обычно используют 64 бита и не подвержены этой проблеме, но старые встроенные системы требуют внимания.
Отрицательные временные метки
Даты до 1970 года обозначаются отрицательными числами; некоторые инструменты их не поддерживают. Будьте внимательны при преобразовании дат раньше 1969 года.
Практические рекомендации
- На бэкенде храните временные метки UTC, на фронтенде при необходимости переводите в локальный часовой пояс
- При анализе логов используйте инструмент для массового перевода меток в читаемое время — это в сто раз быстрее, чем считать в уме
- При отладке интерфейсов сначала проверьте, в секундах или миллисекундах возвращается значение
Преобразование временных меток — частая операция в повседневной разработке. Добавьте инструмент в закладки и открывайте по мере необходимости.