Час/числа

Unix Timestamp ↔ Дата

Конвертація Unix-часу в дату і навпаки, з підтримкою довільних часових поясів (IANA).


                    

Unix-час (epoch) — це кількість секунд, що минули з 1 січня 1970 року 00:00:00 UTC. Це найпоширеніший спосіб зберігати час у базах даних, API та логах, бо це просто одне ціле число без прив’язки до конкретного часового поясу чи формату дати.

Як користуватися

Типові сценарії

Що варто памʼятати

Плутанина секунд і мілісекунд — найчастіша помилка: JavaScript Date.now() повертає мілісекунди, а більшість Unix API — секунди, різниця в 1000 разів.

Unix-час сам по собі не має часового поясу — це завжди UTC; часовий пояс застосовується лише під час відображення дати людині.

Стаття про цей інструмент: Unix-час: чому комп'ютери рахують час від 1970 року

Часті запитання

Що таке Unix timestamp?

Це кількість секунд, що минули з 1 січня 1970 року 00:00:00 UTC (епоха Unix). Це число не прив’язане до жодного часового поясу — сам пояс застосовується лише під час показу дати людині.

У чому різниця між секундами й мілісекундами?

JavaScript і деякі API (напр. Date.now()) віддають timestamp у мілісекундах, тоді як класичний Unix-час — у секундах. Переплутана одиниця дає дату або в 1970 році, або десь у далекому майбутньому — оберіть правильну одиницю у полі "Одиниці".

Що таке проблема 2038 року?

На системах, де timestamp зберігається як 32-бітне ціле зі знаком, лічильник секунд переповниться 19 січня 2038 року. Сучасні 64-бітні системи цієї проблеми не мають.

Чи враховує Unix-час високосні секунди?

Ні, кожна доба в Unix-часі завжди дорівнює рівно 86400 секунд, високосні секунди ігноруються. Системи, яким потрібна точна синхронізація з астрономічним UTC, обробляють високосні секунди окремим механізмом поза стандартним Unix timestamp.

Чи можуть Unix-timestamp бути від'ємними?

Так, від'ємні значення відповідають датам до 1 січня 1970 року. Більшість сучасних систем коректно обробляють такі значення, хоча деякі старі API чи бібліотеки можуть їх не підтримувати.

Статті: Час/числа

Cron-вирази: як розшифрувати розклад запуску завдань

Як розшифрувати вираз на кшталт */15 * * * * і зрозуміти, коли саме запуститься завдання.

Системи числення: навіщо потрібні двійкова, вісімкова й шістнадцяткова

Чому колір #FF5733 у CSS записаний шістнадцятковими цифрами, а не десятковими.

Побітові операції: як AND, OR і XOR працюють на рівні бітів

Чим побітовий AND відрізняється від логічного, і навіщо взагалі оперувати окремими бітами числа.

Різниця між датами: чому підрахунок днів складніший, ніж здається

Чому наївне віднімання дат може дати неправильний результат через високосні роки.

Розрахунок віку: чому це не просте віднімання років

Чому просте віднімання років народження може дати вік на одиницю більший за реальний.

Часові пояси: чому UTC — це не те саме, що GMT

Чому UTC не змінюється двічі на рік, а час у Лондоні (GMT/BST) — змінюється.

Розрахунок тривалості: як правильно підсумовувати години, хвилини й секунди

Чому при додаванні хвилин і секунд потрібно "переносити" залишок у наступний розряд, як при десятковому додаванні.

ISO 8601 Duration: як записати тривалість у стандартному форматі

Чому запис PT1H30M означає «1 година 30 хвилин», а не «1 хвилина 30 годин».

Номер тижня: чому в різних країнах тижні рахують по-різному

Чому 1 січня іноді належить до 52-го чи 53-го тижня попереднього року за стандартом ISO 8601.

Римські цифри: як побудована система без нуля й розрядів

Чому IV означає 4, а не 6, і як правило віднімання працює в римських цифрах.

IEEE 754: чому 0.1 + 0.2 не дорівнює 0.3 у коді

Чому в майже кожній мові програмування 0.1 + 0.2 виводить 0.30000000000000004.

Число прописом: навіщо перетворювати цифри на слова

Чому в банківських документах суму пишуть і цифрами, і словами одночасно.