Шта је Уник време и када је била Уник епоха?

Шта је Уник време и када је била Уник епоха?

Зашто Уник има свој концепт времена? Која је епоха и који је проблем И2038?





Уник време је средство за представљање одређеног датума и времена које користе Линук, мацОС и многи други интероперабилни системи. Толико је раширен да га вероватно користите а да тога нисте свесни. Међутим, када разумете Уник време, уочићете га у многим контекстима. Неколико алата може вам помоћи у раду са Уник временом.





Која је сврха Уник времена?

Уник време је укупан број секунди од фиксног времена и датума. То је формат датума/времена (или временске ознаке) који изгледа другачије од датума и времена читљивих за људе на које смо навикли. Ово је чисто из разлога ефикасности. За складиштење једног броја који представља секунде потребно је много мање простора него за складиштење засебних вредности за годину, месец, сат итд.





Наравно, у модерним терминима, разлика у простору уопште није толико велика. Али узмите у обзир да је Уник настао крајем 1960 -их када је расположиво складиште било далеко мање. Временске ознаке се такође често користе, па се њихова меморија додатно повећава. На пример, свака датотека има три временске ознаке повезане са њом.

Формат је готово немогуће превести у вашу главу ако нисте математички геније. Али ипак има неке предности у односу на читљивије алтернативе, као што је Сриједа, 21. октобра 2015. 07:28:00 ГМТ . Можете лако наручити две временске ознаке Уника, на први поглед. Такође је обично брже утврдити разлику између две временске ознаке. Ово посебно важи за датуме који су блиски, на пример у суседне дане.



О епохи

Дакле, Уник време је укупан број секунди од одређеног тренутка. Али који је то тренутак у времену? Његово 00:00:00 УТЦ на Првог јануара 1970 . Ово се често назива Уник епоха. Програмери су овај датум одабрали за епоху из погодности јер је то био најближи округли датум када су измислили Уник време.

Можда сте видели овај датум када је нешто пошло по злу. Очигледно је да је то грешка, али изгледа веома чудно када резултира датумом пре времена када смо многи од нас рођени! Међутим, потпуно је разумљиво када знате за Уник време. Ако било који систем покушава да прикаже временску ознаку која нема никакву вредност, често ће се превести у 0 и резултирати тачним датумом епохе.





како видети ко има приступ гоогле документу

Уник формат података о времену

Строго говорећи, не постоји. Оригинални тип података био је 32-битни цео број, а то често остаје случај, чак и у много моћнијим системима.

Овај тип података дозвољава вредности да складишти укупно 2^32 секунде, што је нешто више од 136 година. Ова вредност је обично потписана, што значи да може бити негативна или позитивна. Дакле, обично представља 68 година са обе стране епохе, тј. 1902-2038.





Ово је, наравно, још увек ограничен период. Али примарна употреба формата временске ознаке била је за концепте као што је измена датотека. Била је велика потреба да се представи време близу садашњости, а не древне историје или далеко у будућност. Чак и за апликације као што су календари, ретко постоји потреба да се датуми представљају више од неколико деценија у будућности.

Али то не значи да је овај ограничени временски период без проблема ...

Проблем из 2038

Грешка И2К (једна од најгорих програмских грешака у историји) утицала је на рачунарске системе који су године чували као двоцифрене вредности. Када је дошла 2000. година, такви системи су то третирали као да је 1900. У сваком случају, ово није било тако катастрофално као што се страховало, углавном зато што су многи људи унапред потрошили много времена и труда припремајући се за то.

Ако сте у претходном одељку обраћали пажњу, можда сте уочили сличан проблем који би могао утицати на време Уника. Па, Уник време има свој проблем са подацима: проблем И2к38. (Често се то назива проблемом, а не грешком; можда смо постали оптимистичнији од 2000. године!) Када време за Уник дословно истекне 2038. године, системи ће нове датуме третирати као 1902. или 1970. Или су вероватно само ћу потпуно пропасти.

Барем нас овај проблем неће погодити у поноћ у новогодишњој ноћи. Последња секунда 32-битног Уник-а пашће 19. марта. У већини случајева, вероватно ћемо надоградити већину система до 2038. године или ће до тада ионако бити застарели.

Неки корисни ресурси временске ознаке

Тхе Епоцх Цонвертер Вероватно је најопсежнији претварач временских ознака доступан. Почиње приказивањем тренутног Уник времена-у реалном времену-и додаје готово све замисливе карактеристике поврх тога. Његова главна употреба је за претварање између временских ознака и датума читљивих за људе, у оба смера.

Дан'с Тоолс је огромна збирка корисних веб апликација, од којих је једна претварач временских ознака . Основнији је, али има врло чисту презентацију и једноставан је за употребу.

Време је представља још један, још минималистичкији изглед. Приказује време у бројним форматима, укључујући Уник време. Садржи тренутно време у наслову странице што је корисно.

Коришћење Уник Тиме -а са алаткама командне линије

На Линук -у и мацОС -у, датум програм је основни услужни програм за бављење датумом/временом, укључујући временске ознаке Уник -а. Позван без икаквих аргумената, враћа тренутни датум/време у формату читљивом за човека:

$ date
Wed Feb 10 12:28:30 GMT 2021

Ако вам је потребан тренутни датум/време у Уник времену, користите +%с расправа:

$ date +%s
1612960114

Можете да конвертујете датум који може да чита човек у временску ознаку користећи заставица ако је ваша верзија датум подржава га. Већина верзија Линука би подразумевано требало:

$ date -d 'Jan 2 1970' +%s
82800

На мацОС -у, датум је другачији програм, који захтева другачији сет заставица:

$ date -j -f '%b %d %Y %T' 'Jan 02 1970 00:00:00' '+%s'
82800

Ако идете у другом смеру, можете да конвертујете из Уник временске ознаке помоћу застава:

$ date -r 1600000000
Sun 13 Sep 2020 13:26:40 BST

Неки други програми користе формат за бављење Уник временом. На пример, ако желите да прикажете датум измене датотеке у Уник времену, са Линук верзија лс , можете користити следеће:

$ ls -l --time-style=+%s index.tmp.html
-rw-r--r-- 1 ubuntu ubuntu 17862 1521649818 index.tmp.html

Како користити Уник време у програмским језицима

ПХП има време() функција која враћа тренутну временску ознаку Уника. Његово датум () функција узима временску ознаку као свој други аргумент:

$ php -r 'echo date('Y-m-d', time());'
2021-02-11

ЈаваСцрипт приступа стварима на занимљив начин. Има а Дате.нов () метод за добијање броја милисекунди од Уник епохе. Наравно, ово можете поделити са 1.000 и заокружити резултат да бисте добили еквивалентно Уник време у секундама:

> Math.floor(Date.now() / 1000)
1613083012

Разумевање Уник времена

Уник време је једноставан концепт који се појављује на многим местима. Када то схватите, можда ће вам бити од велике користи, на пример, приликом израчунавања временских разлика. Такође можете препознати када је то можда узрок одређених грешака.

Концепти као што су епоха и временске ознаке важан су део почетка коришћења Линука. Да бисте сазнали више о основним стварима као што су лс , погледајте наш водич кроз основне команде Линука.

Објави Објави Твеет Емаил 9 основних команди за почетак рада са Линуком

Желите да се упознате са Линуком? Почните са овим основним Линук командама да бисте научили стандардне рачунарске задатке.

Прочитајте следеће
Повезане теме О аутору Бобби Јацк(Објављено 58 чланака)

Бобби је ентузијаст технологије који је скоро две деценије радио као програмер софтвера. Одушевљен је играњем игара, ради као уредник рецензија у магазину Свитцх Плаиер, и уроњен је у све аспекте издаваштва на мрежи и веб развоја.

Више од Боббија Јацка

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили