Syshelp: Unix epoch
Unix time, odnosno epoch (Unix time) je, jednostavno rečeno, broj sekundi proteklih od ponoći 1. siječnja 1970. godine po UTC-u (Universal Time Code). Ovaj se broj rabi interno na svakom Unix/Linux sustavu u razne svrhe, ali je prilično skriven od pogleda. Češće će ga susresti programeri, nego sistem administratori, ali je korisno znati što predstavlja ovaj broj i kako ga rabiti.
S Linuxom dolazi GNU naredba date, koja podržava epoch format vremena. Kako ćemo saznati koliko je sekundi proteklo od ponoći 1. siječnja 1970? Vrlo jednostavno, samo treba upisati:
# date +'%s'
1192884485
Kao što se može vidjeti, radi se o 10-znamenkastom broju, iako sam broj znamenki nije fiksan. Broj je s 9-znamenkastog na 10-znamenkasti broj prešao 9. rujna 2001. godine. Kako je interna reprezentacija 32-bitna (signed), a maksimalni pozitivni broj koji se može zabilježiti 32-bitno je 2147483647, proizlazi da će krajnji datum koju ovaj broj može prikazati biti 19. siječnja 2038. godine. Poslije toga, slično problemu Y2K, brojač se vraća na nulu i vrijeme 1. siječnja 1970. Više o tom problemu možete pogledati na Wikipedijinim stranicama: http://en.wikipedia.org/wiki/Year_2038_problem.
Iako se epoch ne susreće često, treba imati na umu da je interno itekako u uporabi, te ga rabe neki servisi za logiranje. Može se naći i u logovima ADSL i kabelskih "modema", dakle korisno je znati o čemu se radi.
Relativno je lako prikazati trenutno vrijeme u epoch vremenu, ali konverzija u ljudima razumljivo vrijeme nije toliko lagana kako bi trebala biti. Prikazat ćemo (zahvaljujući Unix i Linux guruima na Usenet grupi hr.comp.os.linux) kako konvertirati Unix vrijeme u ljudima razumljiviji oblik:
# date -d '1970-01-01 UTC 1192884485 seconds'
Sat Oct 20 14:48:05 CEST 2007
# perl -e 'print scalar localtime shift @ARGV,"\n";' 1192884485
Sat Oct 20 14:48:05 2007
# php -r 'echo date("r", $argv[1]) ."\n";' 1192884485
Sat, 20 Oct 2007 14:48:05 +0200
Na kraju, postoji čitav niz web stranica koje mogu ovu konverziju izvesti bez previše kompliciranja, a jedna od njih je http://www.esqsoft.com/javascript_examples/date-to-epoch.htm.
Koji ćete pristup rabiti, ostaje jedino vama na volju. Više informacija o epochu, kao i uvijek, možete saznati na Wikipedijinim stranicama: http://en.wikipedia.org/wiki/Unix_time
- Inačica za ispis
- Logirajte se za dodavanje komentara
- PDF version