Avaa päävalikko

UNIX-aika tarkoittaa useissa käyttöjärjestelmissä (mm. Linux ja muut POSIX-yhteensopivat järjestelmät) käytettävää ajan tallennustapaa. UNIX-aika on (yleensä etumerkillinen 32-bittinen) kokonaisluku, joka ilmaisee ajan sekunteina ajanhetkestä 1. tammikuuta 1970 kello 00:00:00 UTC.[1]

UNIX-aika ei ole täysin ongelmaton ajantallennustapa, koska se ei ota huomioon karkaussekunteja, vaan joka päivä kellonaikaan lisätään tasan 86 400 sekuntia.[1]

UNIX-aika muunnetaan gregoriaanisen kalenterin ajaksi Unixin kirjastofunktioilla ctime(), localtime(), asctime() ja toisinpäin mktime()[2] hyödyntäen zoneinfo-aikavyöhyketietokantaa.

Y2038-ongelmaMuokkaa

Pääartikkeli: Y2K38

Koska UNIX-ajan tallentamiseen käytetään historiallisista syistä yleensä etumerkillistä 32-bittistä kokonaislukutietotyyppiä, tulevat tietotyypin rajat vastaan lopulta – tarkemmin sanoen 19. tammikuuta 2038, jolloin vuoden 1970 alusta tulee kuluneeksi 2 147 483 647 sekuntia ja laskuri pyörähtää ympäri −2 147 483 648 sekuntiin. Ongelman ratkaisemiseksi monissa järjestelmissä on siirrytty tai ainakin ollaan siirtymässä 64-bittiseen aikatietotyyppiin; esimerkiksi 64-bittisissä Linux-järjestelmissä ajan tallennukseen käytettävä time_t-tietotyyppi on 64-bittinen.

LähteetMuokkaa