Timestamp Converter — Unix, Excel, FILETIME, .NET Ticks
Конвертер времени для разработчика: Unix timestamp ↔ дата, плюс Excel-число, Windows FILETIME и .NET DateTime.Ticks. Авто-определение sec/ms/us/ns, UTC и локальное время, ISO 8601, живой текущий timestamp.
О Timestamp Converter
Один инструмент для всех популярных «эпох»: Unix (Linux, JavaScript, Java), Excel-число даты, Windows FILETIME (NTFS, Active Directory) и .NET DateTime.Ticks. Конвертер показывает время в UTC и в вашем часовом поясе, выдаёт ISO 8601 и значения во всех остальных эпохах одновременно — удобно, когда переносите данные между системами.
Где это нужно
Отладка API и логов
В JSON-ответах и логах время чаще всего приходит как Unix timestamp. Вставьте — увидите, какому моменту он соответствует, и сравните с временем сервера или клиента.
iat / exp в JWT и Java
Поля iat, exp, nbf в JWT — Unix-секунды. System.currentTimeMillis() в Java и Date.now() в JS — миллисекунды. Конвертер сам определит масштаб по числу цифр.
Excel портит даты
Excel хранит даты как число дней с 1900 года. Если в выгрузке вместо даты вы видите «45245.5» — это и есть Excel-число. Выберите эпоху Excel и получите нормальную дату.
Windows-логи и Active Directory
Поля lastLogon, pwdLastSet в AD, NTFS timestamp — это FILETIME, 100-нс с 1601 года. .NET DateTime.Ticks — то же самое, но с 0001 года. Просто вставьте — увидите дату.
Частые вопросы
Чем отличаются секунды и миллисекунды в timestamp?
Unix-секунды (Linux, PostgreSQL, Python time.time как int) — 10 цифр для текущих дат, например 1700000000. Миллисекунды (Java System.currentTimeMillis, JavaScript Date.now, MongoDB) — 13 цифр, например 1700000000000. Конвертер в режиме Unix определяет масштаб автоматически по количеству цифр.
Java timestamp — это что-то особое?
Нет, та же эпоха 1970-01-01 UTC, что и в Unix, просто Java по умолчанию работает в миллисекундах. System.currentTimeMillis(), Date.getTime(), Instant.toEpochMilli() — всё это Unix-время × 1000. Instant.getEpochSecond() даёт привычные секунды.
Что такое Excel-число даты?
Excel и Google Sheets хранят дату как число дней (с дробной частью для времени) с 1900-01-00. Сегодня это число вида 45000. В нём заложен исторический баг: 1900 год считается високосным (он не был), поэтому даты до марта 1900 могут расходиться на 1 день.
Что такое FILETIME и где он встречается?
Windows FILETIME — 100-наносекундные интервалы, прошедшие с 1601-01-01 UTC. Используется в WinAPI (CreateFile, FindFirstFile), NTFS, Active Directory (lastLogon, lastLogonTimestamp, pwdLastSet, accountExpires). Текущее значение — около 133...×10⁶.
Что такое .NET DateTime.Ticks?
C# / .NET использует свою эпоху — 0001-01-01 00:00:00 UTC, и считает время в 100-наносекундных интервалах. DateTime.Now.Ticks даёт огромное число вида 638...×10¹⁰. По формуле: ticks = (unixSec + 62135596800) × 10⁷.
Что такое проблема 2038 года?
32-битный signed Unix timestamp переполняется 19 января 2038 года в 03:14:07 UTC. Современные системы давно перешли на 64 бита, где переполнение случится через 292 миллиарда лет — но в legacy-коде на Си или старых embedded-устройствах проблема ещё актуальна.
Как получить текущий timestamp в разных языках?
Unix sec — JavaScript: Math.floor(Date.now()/1000); Python: int(time.time()); Bash: date +%s; Go: time.Now().Unix(); PHP: time(); PostgreSQL: extract(epoch from now())::int. Unix ms — Java: System.currentTimeMillis(); JS: Date.now(). .NET ticks — DateTime.UtcNow.Ticks.