Час Unix чи час POSIX — система для опису моментів в часі, а саме кількістю секунд, які минули від початку епохи (півночі за всесвітнім координованим часом в четвер, першого січня, 1970-того року). (Час Unix є означеним і в давніші моменти, але там він є від'ємним). , оголошені Міжнародною службою обертання землі та систем відліку, не враховуються, бо не є детермінованими. Широко використовується в Unix-подібних та багатьох інших операційних системах, платформах та файлових форматах. Час Unix на деяких з них можна отримати за допомогою команди date +%s
.
Поточний UNIX-час: 1720001246 (10:07, 3 липня 2024 UTC) (Вище вказано час останньої генерації цієї сторінки.) |
Цілочисельне представлення
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
.
Кожного дня число, яке представляє 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
.
«Ювілейні» значення
Час | Кількість секунд |
---|---|
13 грудня 1901 року, 20:45:52 UTC | Мінімальна дата в знаковому 32-біт представленні (0x80000000) |
19 січня 2038 року, 03:14:07 UTC | Максимальна дата в знаковому 32-біт представленні (0x7FFFFFFF) |
9 вересня 2001 року, 01:46:40 UTC | 1 000 000 000 (1 гігасекунда) |
10 січня 2004 року, 13:37:04 UTC | 1 073 741 824 = 230 (1 гібісекунда) |
18 березня 2005 року, 01:58:31 UTC | 1 111 111 111 |
6 вересня 2008 року 12:12:05 UTC | 1 220 703 125 = 513 |
13 лютого 2009 року, 23:31:30 UTC | 1 234 567 890 |
Проблема 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 року.
Примітки
Посилання
- Конвертер Час Unix багатомовний [ 5 грудня 2014 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет