Час Unix чи час POSIX — система для опису моментів в часі, а саме кількістю секунд, які минули від початку епохи (півночі за всесвітнім координованим часом в четвер, першого січня, 1970-того року). (Час Unix є означеним і в давніші моменти, але там він є від'ємним). , оголошені Міжнародною службою обертання землі та систем відліку, не враховуються, бо не є детермінованими. Широко використовується в Unix-подібних та багатьох інших операційних системах, платформах та файлових форматах. Час Unix на деяких з них можна отримати за допомогою команди date +%s
.
Поточний UNIX-час: 1718946162 (05:02, 21 червня 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 року.
Примітки
- . pubs.opengroup.org. Архів оригіналу за 22 грудня 2017. Процитовано 15 листопада 2016.
- Broussard, Mitchel. . Архів оригіналу за 16 серпня 2016. Процитовано 15 листопада 2016.
Посилання
- Конвертер Час 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, Інтернет
Chas Unix chi chas POSIX sistema dlya opisu momentiv v chasi a same kilkistyu sekund yaki minuli vid pochatku epohi pivnochi za vsesvitnim koordinovanim chasom v chetver pershogo sichnya 1970 togo roku Chas Unix ye oznachenim i v davnishi momenti ale tam vin ye vid yemnim ogolosheni Mizhnarodnoyu sluzhboyu obertannya zemli ta sistem vidliku ne vrahovuyutsya bo ne ye determinovanimi Shiroko vikoristovuyetsya v Unix podibnih ta bagatoh inshih operacijnih sistemah platformah ta fajlovih formatah Chas Unix na deyakih z nih mozhna otrimati za dopomogoyu komandi date s Potochnij UNIX chas 1718946162 05 02 21 chervnya 2024 UTC Vishe vkazano chas ostannoyi generaciyi ciyeyi storinki Cilochiselne predstavlennyaUNIX chas predstavleno cilim chislom yake zbilshuyetsya z kozhnoyu sekundoyu bez neobhidnosti obchislen dlya viznachennya roku misyacya dnya godini abo hvilini dlya zruchnosti sprijnyattya lyudinoyu Suchasnij UNIX chas uzgodzhuyetsya z UTC vidlik vidbuvayetsya v sekundah SI Chasovij promizhok odnogo dnya majzhe zavzhdi rozbito na 86400 sekund ale pri ogoloshenni visokosnih sekund stanovit 86401 sekundu Taki sekundi zgidno zi Vsesvitnim chasom zberigayut trivalist dniv sinhronizovanu z chasom oborotu planeti V UNIX chasi vidpovidni nomeri sekund povtoryuyutsya tobto visokosni sekundi ne vrahovuyutsya U moment chasu 00 00 00 UTC 1 sichnya 1970 chetver UNIX chas dorivnyuye nulevi Pochinayuchi z cogo chasu chislo zrostaye na pevnu kilkist shodnya Takim chinom napriklad 16 veresnya 2004 roku v 00 00 00 cherez 12677 dniv pislya pochatku vidliku UNIX chasu chas bude predstavleno chislom 12677 86400 1095292800 Rozrahunki mozhna takozh zrobiti v zvorotnomu napryamku vikoristovuyuchi vid yemni chisla Napriklad datu 4 zhovtnya 1957 roku 00 00 00 a ce 4472 dni do pochatku vidliku predstavleno v UNIX chasi chislom 4472 86400 386 380 800 Kozhnogo dnya chislo yake predstavlyaye Unix chas obchislyuyetsya opisanim chinom v UTC 00 00 00Z i zbilshuyetsya rivno na 1 na sekundu pochinayuchi z pivnochi Otzhe 16 09 2004 17 55 43 54 64543 54 sekund z pivnochi z prikladu vishe bude predstavleno v UNIX chasi chislom 1095292800 64543 54 1095357343 54 Dlya dat sho pereduvali pochatku vidliku chislo takozh zrostaye tobto z plinom chasu nablizhayetsya do nulya Cyu cilochiselnu sistemu zruchno vikoristovuvati dlya porivnyannya ta zberigannya dat data i chas v comu formati zajmayut vsogo 4 abo 8 bajtiv Pri neobhidnosti zvernennya do elementiv dat den misyac rik sekundi mozhna peretvoriti na bud yakij vidpovidnij format i navpaki U programah dlya zberigannya UNIX chasu vikoristovuyetsya cilochiselnij znakovij tip 32 bitovi chisla zi znakom mozhut posilatisya na momenti chasu vid p yatnici 13 grudnya 1901 roku 20 45 52 do vivtorka 19 sichnya 2038 roku 3 14 07 vklyuchno Shob diznatisya potochnij UNIX chas u bilshosti UNIX podibnih sistem mozhna vikoristovuvati komandu date s Yuvilejni znachennyaChas Kilkist sekund 13 grudnya 1901 roku 20 45 52 UTC Minimalna data v znakovomu 32 bit predstavlenni 0x80000000 19 sichnya 2038 roku 03 14 07 UTC Maksimalna data v znakovomu 32 bit predstavlenni 0x7FFFFFFF 9 veresnya 2001 roku 01 46 40 UTC 1 000 000 000 1 gigasekunda 10 sichnya 2004 roku 13 37 04 UTC 1 073 741 824 230 1 gibisekunda 18 bereznya 2005 roku 01 58 31 UTC 1 111 111 111 6 veresnya 2008 roku 12 12 05 UTC 1 220 703 125 513 13 lyutogo 2009 roku 23 31 30 UTC 1 234 567 890Problema Apple iOS yak UNIX sistemiU 64 bitnih iOS pristroyiv vid Apple isnuye problema UNIX sistemi Yaksho perevesti chas na pristroyi z 64 bitovim procesorom pid keruvannyam iOS na godinu nochi pershogo sichnya 1970 roku i perezavantazhiti pristrij buduchi v chasovomu poyasi vid UTC 1 30 i bilshe to pislya perezavantazhennya pristroyu vin ne zavantazhitsya ves chas bude svititisya bile yabluko dzherelo Vidbuvayetsya ce cherez riznicyu v chasovih poyasah tobto yaksho perevesti chas na 1 00 1 sichnya 1970 roku v chasovomu poyasi UTC 1 30 abo bilshe to lichilnik UNIX time jde v minus tak yak vidlik vedetsya vid UTC chasu sho sistema zrozumiti ne v zmozi vnaslidok chogo lichilnik zavisaye Pristrij navit ne vidnovlyuyetsya cherez DFU ale problema maye tri rishennya inshimi sposobami Pershij sposib prosto zalishiti vklyuchenim pristrij i chekati poki lichilnik UNIX time pide v plyus poki ne dovedeno sho danij sposib pracyuye Drugij sposib chekati poki akumulyator telefonu syade povnistyu i lichilnik sam skinetsya na nulovij stan Tretij sposib rozibrati pristrij i vidklyuchiti akumulyator na deyakij chas potim zibrati pristrij lichilnik tak samo skinetsya na nul i pristrij bude pracyuvati Problema ostatochno virishena v iOS 9 3 1 teper na pristroyi dostupni dlya ustanovki dati pochinayuchi z 1 sichnya 2001 roku Primitki pubs opengroup org Arhiv originalu za 22 grudnya 2017 Procitovano 15 listopada 2016 Broussard Mitchel Arhiv originalu za 16 serpnya 2016 Procitovano 15 listopada 2016 PosilannyaKonverter Chas Unix bagatomovnij 5 grudnya 2014 u Wayback Machine