Топ питань
Часова шкала
Чат
Перспективи
Час Unix
З Вікіпедії, вільної енциклопедії
Remove ads
Час Unix чи час POSIX — система для опису моментів в часі, а саме кількістю секунд, які минули від початку епохи (півночі за всесвітнім координованим часом в четвер, першого січня, 1970-того року). (Час Unix є означеним і в давніші моменти, але там він є від'ємним). Додаткові секунди, оголошені Міжнародною службою обертання землі та систем відліку, не враховуються, бо не є детермінованими. Широко використовується в Unix-подібних та багатьох інших операційних системах, платформах та файлових форматах. Час Unix на деяких з них можна отримати за допомогою команди date +%s
.
Поточний UNIX-час: 1750856171 (12:56, 25 червня 2025 UTC) (Вище вказано час останньої генерації цієї сторінки.) |
Remove ads
Цілочисельне представлення
Узагальнити
Перспектива
UNIX-час представлено цілим числом, яке збільшується з кожною секундою без необхідності обчислень для визначення року, місяця, дня, години або хвилини для зручності сприйняття людиною. Сучасний UNIX-час узгоджується з UTC — відлік відбувається в секундах SI. Часовий проміжок одного дня майже завжди розбито на 86400 секунд, але при оголошенні високосних секунд становить 86401 секунду. Такі секунди, згідно зі Всесвітнім часом, зберігають тривалість днів, синхронізовану з часом обороту планети. В UNIX-часі відповідні номери секунд повторюються, тобто високосні секунди не враховуються.
У момент часу 00:00:00 UTC + 1 січня 1970 (четвер) UNIX-час дорівнює нулеві. Починаючи з цього часу, число зростає на певну кількість щодня. Таким чином, наприклад, 16 вересня 2004 року в 00:00:00, через 12677 днів після початку відліку UNIX-часу, час буде представлено числом 12677 × 86400 = 1095292800
. Розрахунки можна також зробити в зворотному напрямку, використовуючи від'ємні числа. Наприклад, дату 4 жовтня 1957 року 00:00:00, а це 4472 дні до початку відліку, представлено в UNIX-часі числом -4472 × 86400 = -386 380 800
.[1]
Кожного дня число, яке представляє Unix-час, обчислюється описаним чином в UTC (00: 00: 00Z) і збільшується рівно на 1 на секунду, починаючи з півночі. Отже, 16-09-2004 17: 55: 43.54, 64543.54 секунд з півночі, з прикладу вище, буде представлено в UNIX-часі числом 1095292800 + 64543.54 = 1095357343.54
. Для дат, що передували початку відліку, число також зростає, тобто з плином часу наближається до нуля.
Цю цілочисельну систему зручно використовувати для порівняння та зберігання дат (дата і час в цьому форматі займають всього 4 або 8 байтів). При необхідності звернення до елементів дат (день, місяць, рік) секунди можна перетворити на будь-який відповідний формат (і навпаки).
У програмах для зберігання UNIX-часу використовується цілочисельний знаковий тип. 32-бітові числа зі знаком можуть посилатися на моменти часу від п'ятниці 13 грудня 1901 року 20:45:52 до вівторка 19 січня 2038 року 3:14:07 включно.
Щоб дізнатися поточний UNIX-час, у більшості UNIX-подібних систем можна використовувати команду date +% s
.
Remove ads
«Ювілейні» значення
Remove ads
Проблема Apple iOS як UNIX системи
Узагальнити
Перспектива
У 64-бітних iOS пристроїв від Apple існує проблема UNIX системи. Якщо перевести час на пристрої з 64-бітовим процесором під керуванням iOS на годину ночі першого січня 1970 року і перезавантажити пристрій, будучи в часовому поясі від UTC + 1:30 і більше, то після перезавантаження пристрою він не завантажиться, весь час буде світитися «біле яблуко».[джерело?]
Відбувається це через різницю в часових поясах, тобто: якщо перевести час на 1:00 1 січня 1970 року в часовому поясі UTC + 1:30 або більше, то лічильник UNIX-time йде в мінус, так як відлік ведеться від UTC часу, що система зрозуміти не в змозі, внаслідок чого лічильник зависає. Пристрій навіть не відновлюється через DFU, але проблема має три рішення іншими способами. Перший спосіб: просто залишити включеним пристрій і чекати поки лічильник UNIX-time піде в плюс (поки не доведено, що даний спосіб працює). Другий спосіб: чекати поки акумулятор телефону сяде повністю і лічильник сам скинеться на нульовий стан. Третій спосіб: розібрати пристрій і відключити акумулятор на деякий час, потім зібрати пристрій, лічильник так само скинеться на нуль і пристрій буде працювати.
Проблема остаточно вирішена в iOS 9.3.1 — тепер на пристрої доступні для установки дати починаючи з 1 січня 2001 року.[2]
Примітки
Посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads