Skip to content

Конвертер Меток Времени

Мгновенное преобразование между метками времени Unix и читаемыми датами — плюс Windows FILETIME, .NET Ticks, LDAP/AD, Chrome WebKit и Excel OADate. Вставьте любое значение, и формат определяется автоматически, с копированием в один клик.

Конвертер

Текущая метка времени Unix
Секунды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 имеет два распространённых разрешения:

СекундыМиллисекунды
Пример17000000001700000000000
Точность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

Например, 1335927553562300002024-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:

powershell
[DateTime]::FromFileTime($value).ToString('yyyy-MM-dd HH:mm:ss')

Например, 1325145600000000002020-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:

sql
SELECT datetime(time / 1000000 - 11644473600, 'unixepoch') AS visit_time
FROM urls ORDER BY visit_time DESC LIMIT 10;

Например, 133176960000000002023-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.52025-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 года.