Конвертер Меток Времени
Мгновенное преобразование между метками времени Unix и читаемыми датами — плюс Windows FILETIME, .NET Ticks, LDAP/AD, Chrome WebKit и Excel OADate. Вставьте любое значение, и формат определяется автоматически, с копированием в один клик.
Конвертер
0 0 Метка → Дата
Дата → Метка
Что такое метка времени Unix?
Метка времени Unix (также называемая временем эпохи Unix или временем POSIX) — это количество секунд, прошедших с 1970-01-01 00:00:00 UTC — эпохи Unix. Это самый распространённый способ представления момента времени в программировании.
Например, 1700000000 соответствует 14 ноября 2023 года, 22:13:20 UTC.
Особенности меток времени Unix:
- Не зависят от часового пояса — всегда измеряются в UTC
- Непрерывны — без високосных секунд в большинстве реализаций
- Компактны — одно целое число вместо полной строки даты
Секунды vs Миллисекунды
Метка времени Unix имеет два распространённых разрешения:
| Секунды | Миллисекунды | |
|---|---|---|
| Пример | 1700000000 | 1700000000000 |
| Точность | 1 секунда | 1 миллисекунда |
| Используется | API Unix/Linux, большинство баз данных | JavaScript (Date.now()), Java, системы логирования |
| Цифр | ~10 цифр | ~13 цифр |
Как отличить: Если число содержит 13+ цифр, это миллисекунды. Этот конвертер автоматически определяет разрешение — просто вставьте число.
Типичные Сценарии Использования
- Отладка логов — Преобразование меток времени в серверных логах в читаемое время для отслеживания событий
- Интеграция API — Многие REST API используют метки времени Unix для полей дат
- Запросы к БД — Поиск записей по временному диапазону с использованием значений эпохи
- Планирование — Расчёт задержек или планирование будущих событий с помощью арифметики меток времени
- UUID v7 — UUID v7 кодирует метку времени Unix в миллисекундах в первых 48 битах; декодируйте её, чтобы узнать, когда был создан UUID
- Администрирование Active Directory — Преобразование меток LDAP
lastLogon,pwdLastSetиaccountExpiresв читаемые даты для аудита пользователей - Автоматизация Excel / Office — Декодирование серийных номеров OADate при взаимодействии с электронными таблицами и
DateTime.FromOADate - Форензика Chrome — Чтение меток WebKit из SQLite
HistoryиCookiesдля отладки или цифровой форензики
Что такое Windows FILETIME?
Windows FILETIME — это 64-битное значение, отсчитывающее интервалы по 100 наносекунд с 1601-01-01 00:00:00 UTC. Это native-формат времени API Win32, файловой системы NTFS и COM/OLE.
Структура FILETIME хранит значение как два 32-битных DWORD: dwLowDateTime и dwHighDateTime. Вы встретите его в GetFileTime(), CoFileTimeNow() и записях главной таблицы файлов (MFT) NTFS.
Формула преобразования:
unix_seconds = (filetime / 10000000) - 11644473600Например, 133592755356230000 → 2024-05-04 04:32:15 UTC. Этот конвертер автоматически определяет 18-значные числа ниже ~3 × 10¹⁷ как FILETIME.
Что такое .NET DateTime Ticks?
.NET Ticks — это 64-битное целое со знаком, отсчитывающее интервалы по 100 наносекунд с 0001-01-01 00:00:00 UTC (год 1). Это базовое хранилище для DateTime в C#/.NET, доступное через DateTime.Now.Ticks.
Диапазон охватывает даты от 0001-01-01 до 9999-12-31 — одно значение long до ~3,16 × 10¹⁸. В отличие от FILETIME (на основе 1601), .NET ticks начинаются с 1 года, чтобы избежать отрицательных значений и упростить календарные вычисления.
Например, 638514336000000000 ticks → 2024-05-16 00:00:00 UTC. Значения от ~3 × 10¹⁷ определяются как .NET ticks; ниже этого порога вероятнее FILETIME.
Что такое метка времени LDAP / Active Directory?
Метки LDAP (используются Microsoft Active Directory) численно идентичны FILETIME — интервалы по 100 наносекунд с 1601-01-01 UTC. Разница чисто контекстная: атрибуты AD, такие как lastLogon, lastLogonTimestamp, pwdLastSet и accountExpires, хранят значения FILETIME в схеме LDAP.
Администраторы AD регулярно преобразуют эти значения для аудита активности пользователей и истечения паролей. В PowerShell:
[DateTime]::FromFileTime($value).ToString('yyyy-MM-dd HH:mm:ss')Например, 132514560000000000 → 2020-12-03 00:00:00 UTC. Значение accountExpires, равное 9223372036854775807 (Int64.MaxValue), означает «никогда не истекает».
Что такое метка времени Chrome / WebKit?
Метка времени Chrome и WebKit отсчитывает микросекунды (не 100 наносекунд) с 1601-01-01 UTC. Они появляются в базах данных SQLite History, Cookies и Login Data Chrome — полезны для отладки, форензики и восстановления данных.
Поскольку единица измерения — мкс (а не 100 нс), значения в 10 раз меньше, чем FILETIME для того же момента. Значения текущей эпохи содержат 17 цифр (~1,3 × 10¹⁶).
Чтобы запросить историю Chrome на SQL:
SELECT datetime(time / 1000000 - 11644473600, 'unixepoch') AS visit_time
FROM urls ORDER BY visit_time DESC LIMIT 10;Например, 13317696000000000 → 2023-01-09 00:00:00 UTC.
Что такое Microsoft OADate / серийный номер Excel?
OADate (OLE Automation Date) — это double, отсчитывающий дни с 1899-12-30. Дробная часть представляет время суток (0,5 = полдень). Excel, Google Sheets и автоматизация Office используют этот сериальный формат внутри.
Почему 1899-12-30, а не 1900-01-01? Excel намеренно воспроизводит ошибку високосного года 1900 (1900 не был високосным, но Lotus 1-2-3 обрабатывал его как високосный). Сдвиг эпохи на два дня назад сохраняет даты Excel совместимыми с этим историческим багом.
Например, 45678.5 → 2025-01-21 12:00:00. В C#: DateTime.FromOADate(45678.5). В Excel: =ДАТА(2025;1;21) возвращает 45678.
Часто Задаваемые Вопросы
Что такое проблема 2038 года? Метка времени Unix в 32-битном знаковом целом достигает максимума при 2147483647 (19 января 2038 года, 03:14:07 UTC). Системы, всё ещё использующие 32-битный time_t, столкнутся с переполнением. Большинство современных систем уже перешли на 64-битные метки времени, которые не переполнятся 292 миллиарда лет.
Как этот инструмент обрабатывает часовые пояса? Метка времени Unix по своей сути является UTC. Этот конвертер показывает как UTC-представление, так и локальный часовой пояс вашего браузера.
Можно ли использовать отрицательные метки времени? Да. Отрицательные метки времени Unix представляют даты до эпохи (1970-01-01 00:00:00 UTC). Например, -86400 — это 31 декабря 1969 года, 00:00:00 UTC — ровно за день до эпохи.
В чём разница между FILETIME и метками LDAP? Численно — ни в чём: оба представляют интервалы по 100 наносекунд с 1601-01-01 UTC. «FILETIME» — это имя Win32/COM; «метка LDAP» относится к тому же значению, хранящемуся в атрибутах Active Directory, таких как lastLogon. Используйте одну и ту же формулу преобразования.
Почему .NET DateTime Ticks начинается с 1 года? Календарь .NET начинается с 0001-01-01 (условного начала григорианского календаря), чтобы все допустимые даты давали положительные значения tick. Это позволяет избежать сложности обработки знака, свойственной эпохе 1601 в FILETIME, и упрощает арифметику дат во всём диапазоне 0001–9999.
Почему эпоха OADate — 30 декабря 1899 года? Excel унаследовал баг от Lotus 1-2-3, который обрабатывал 1900 год как високосный (это не так). Чтобы даты вроде 1 марта 1900 года совпадали между Excel и реальностью, эпоха OLE Automation была установлена на 1899-12-30 — на два дня раньше номинального «1 января 1900 года», компенсируя фантомный 29 февраля 1900 года.