Unix timestamp у дату і навпаки
- Unix, секунди
- Unix, мілісекунди
- ISO 8601, UTC
- ISO 8601, обраний пояс
- Людською
- День тижня
- Відносно зараз
- Зсув пояса
Unix timestamp — це кількість секунд, що минули з 1 січня 1970 року за UTC. Усе рахується у вашому браузері.
Про інструмент: Unix timestamp і дата
Бази даних, логи й відповіді API зберігають час числом, і прочитати його усно неможливо. Цей інструмент перетворює таке число на зрозумілу дату й навпаки — обидва поля пов’язані, тому правити можна будь-яке. Тут немає сторонньої реклами й реєстрації.
Усе рахується у вашому браузері — значення не надсилається на сервер і ніде не зберігається.
Головні переваги інструменту:
Одиниця визначається сама: секунди, мілісекунди, мікросекунди чи наносекунди розпізнаються за порядком величини. Якщо здогадка хибна, одиницю можна задати вручну.
Будь-який часовий пояс: не лише ваш і UTC, а весь список IANA. Це головне, коли сервер живе в одному поясі, а ви в іншому.
Поточне значення завжди на видноті: угорі цокає живий timestamp у секундах і мілісекундах, копіюється одним кліком.
Що таке Unix timestamp
Це кількість секунд, що минули з 1 січня 1970 року, 00:00 UTC — моменту, який називають початком епохи. Число не залежить від часового поясу й від переходу на літній час, тому його зручно зберігати: та сама мить в Україні та в Каліфорнії позначається однаково, а розходяться вже способи її показати.
Секунди чи мілісекунди
Стандартний Unix timestamp рахує секунди, і саме так його віддають PHP, Python і бази даних. Але JavaScript у Date.now() повертає мілісекунди, тому число там у тисячу разів більше. Це найчастіша причина, чому дата раптом опиняється в 1970 році або, навпаки, у далекому майбутньому.
Розрізнити їх легко за довжиною: у секундах сучасна дата має 10 цифр, у мілісекундах — 13. Мікросекунди дають 16 цифр, наносекунди — 19; такі значення трапляються в Python і в базах на кшталт ClickHouse.
Про часові пояси
Сам timestamp поясу не має. Пояс з’являється лише тоді, коли число перетворюють на дату, і саме тут виникає більшість помилок.
Сервер зазвичай живе в UTC: якщо в логах час не збігається з вашим годинником на кілька годин, майже завжди річ у цьому.
Перехід на літній час зсуває зсув: для Києва це +02:00 узимку і +03:00 улітку. Інструмент враховує це для кожної конкретної дати, а не бере поточний зсув.
Одна й та сама мить має різні написання: зміна поясу тут не змінює момент, а лише те, як він виглядає.
Кілька практичних порад
Порівнюйте моменти числами, а не рядками: два різні написання можуть означати ту саму мить, і навпаки.
Зберігайте в UTC, показуйте в поясі користувача: це правило рятує від більшості проблем із часом у застосунках.
Стережіться 2038 року: у 32-бітному знаковому цілому timestamp переповнюється 19 січня 2038 року. Якщо десь у системі час лежить у
int32, це варто перевірити заздалегідь.Відʼємні значення теж дійсні: вони позначають дати до 1970 року, і інструмент їх приймає.