Що це за інструмент?
Unix-мітка часу (також звана epoch-часом) — це кількість секунд, що минули з 1 січня 1970 року, 00:00:00 UTC. Це стандартний спосіб, у який комп'ютери зберігають моменти часу: бази даних, файли логів, API та мови програмування використовують саме його, бо це єдине однозначне число без плутанини з часовими поясами.
Існує два варіанти: секунди (сьогодні 10 цифр, наприклад 1720500000) та мілісекунди (13 цифр, використовуються в JavaScript та Java). Цей інструмент автоматично визначає, який саме варіант ви вставили.
Навіщо його використовувати?
- Миттєво читайте мітки часу з логів, рядків бази даних і відповідей API.
- Автоматично визначає секунди чи мілісекунди — без здогадок.
- Показує місцевий час, UTC, ISO 8601 та відносний час ("3 години тому") разом.
- Конвертує в обидва напрямки: мітка часу → дата і дата → мітка часу.
- Живий годинник поточного epoch для швидкого довідкового використання.
Як користуватися
- Щоб декодувати: вставте мітку часу (наприклад, 1720500000) у ліве поле й натисніть "Конвертувати".
- Прочитайте результат у вашому місцевому часовому поясі, UTC, ISO 8601 та як відносний час.
- Щоб закодувати: оберіть дату й час у правому полі та натисніть "Конвертувати", щоб отримати мітку часу в секундах і мілісекундах.
- Використовуйте живий годинник вгорі, коли просто потрібна поточна мітка часу.
Приклад
Введення
1720500000Результат
Місцевий час: 09.07.2024, 13:20:00
Час UTC: вт, 09 лип 2024 05:20:00 GMT
ISO 8601: 2024-07-09T05:20:00.000Z10-значне значення трактується як секунди; 13-значне — як мілісекунди.
Практичні поради
- Налагодження помилок "неправильного часу": 90% з них — проблеми відображення часового поясу, а не неправильні мітки часу. Порівняйте рядок UTC з логами вашого сервера (сервери зазвичай логують у UTC), перш ніж чіпати код.
- Дата, що потрапляє точно на 1970-01-01, означає, що мітка часу дорівнювала 0 або була відсутня — класична ознака порожнього значення, а не реальна дата.
- Дата близько 1970 року плюс кілька днів зазвичай означає, що десь секунди були інтерпретовані як мілісекунди; дата в районі 56 000+ року означає протилежне.
- У електронних таблицях: Excel рахує дні з 1900 року, а не секунди з 1970 року. Конвертуйте за формулою =(A1/86400)+ДАТА(1970,1,1) для мітки часу в секундах.
Реальні сценарії використання
Де мітки часу підводять на практиці: читання полів терміну дії в JWT та API-токенах (exp/iat — це Unix-секунди), зіставлення часу звіту про помилку користувача з рядками логів сервера, налаштування TTL кешу та вікон cron, перевірка, чи справді закінчився термін дії сертифіката або токена. Рядок відносного часу ("3 години тому") — найшвидша перевірка для всього цього.
Налагодження JWT трапляється достатньо часто, щоб розписати окремо: декодуйте payload токена за допомогою інструмента Base64, а потім вставте значення exp сюди — миттєва відповідь на питання "чи закінчився термін дії цього токена і наскільки".
Чому Unix-час спроєктовано саме так
Зберігання одного зростаючого числа з фіксованого моменту (замість структури рік/місяць/день/година) було свідомим компромісом заради простоти: дві мітки часу можна порівняти чи відняти простою арифметикою без жодної календарної логіки, тому бази даних, формати логів і практично внутрішнє представлення дати в кожній мові програмування побудовані саме на цьому. Ціна цієї простоти — саме те, для згладжування чого існує цей інструмент: люди не мислять секундами з 1970 року, тож кожну мітку часу потрібно перекладати назад у календарну дату, перш ніж вона матиме сенс для людини, яка її читає, а цей переклад має враховувати одночасно часовий пояс, точність (секунди чи мілісекунди) і формат відображення.
Часті запитання
Як інструмент визначає, чи моя мітка часу в секундах чи мілісекундах?
За розміром. Значення 1 000 000 000 000 (1e12) або більші трактуються як мілісекунди; менші — як секунди. Поточні дати становлять близько 1,7 мільярда в секундах і близько 1700 мільярдів у мілісекундах, тож ці два діапазони не перетинаються для реалістичних дат.
Чому моя мітка часу показує іншу годину, ніж я очікую?
Часові пояси. Мітка часу завжди базується на UTC; рядок "місцевий час" конвертує її в часовий пояс вашого пристрою. Порівняйте рядок UTC з тим, що логує ваша вихідна система — багато серверів ведуть логи в UTC.
Що таке проблема 2038 року?
Системи, що зберігають мітки часу як 32-бітні числа зі знаком, переповнюються 19 січня 2038 року. Сучасні системи використовують 64-бітні числа й не піддаються цій проблемі. Цей інструмент використовує числа JavaScript, які обробляють дати далеко за межами 2038 року.
Чи можу я конвертувати від'ємні мітки часу?
Так. Від'ємні мітки часу представляють дати до 1 січня 1970 року — наприклад, -86400 відповідає 31 грудня 1969 року.
Чи враховує epoch високосні секунди?
Ні. Unix-час умовно вважає, що кожна доба має рівно 86 400 секунд, і ігнорує високосні секунди — навмисне спрощення, що полегшує обчислення.