====== U1G tulee, oletko valmis? ====== //U1G eli "Unixtime 1 Giga" tapahtuu syyskuussa 2001. Oletko valmis?// Unix-koneet mittaavat aikaa ns. unixtimella, numerolla joka kertoo kuinka monta todellista sekuntia on kulunut sitten ajankohdan 1.1.1970 klo 00:00. ===== Syyskuu 2001: U1G ===== Unixtime pyörähtää arvosta 999 999 999 arvoon 1 000 000 000 Syyskuussa 2001, tarkkaan ottaen 9.9.2001 kello 04:46:40 Suomen aikaa (2001-09-09 01:46:40 UTC). Tämän ei pitäisi vaikuttaa mihinkään, tosin joitakin "hauskoja" efektejä lienee lupa odottaa. ===== Tammikuu 2038: Wraparound ===== Ehkä merkittävin unixtime-tapahtuma on vuonna 2038, tarkemmin 19.1.2038 05:14:08 Suomen aikaa (2038-01-19 03:14:08 UTC) kun 32-bittisenä etumerkillisenä numerona käsitelty unixtime pyörähtää ympäri arvosta 2 147 483 647 (2^31-1 eli 0x7FFFFFFF) arvoon -2 147 483 648 (2^31 eli 0x80000000). Useimmat Unix-koneet käsittelevät unixtime:ä kuitenkin oikein positiivisena kokonaislukuna jolloin kaikki toimii ilman ongelmia. Eräässä yleisessä vuonna 2000 julkaistussa Unix-versioissa tämä heivauttaa kuitenkin kellonajan näyttämään 13.12.1901 22:25:44 Suomen aikaa (1901-12-13 20:45:52 UTC), Hmmm... ===== Disklaimeri ===== Tarkka paikallinen kellonaika saattaa riippua siitä, montako aikojen kuluessa lisättyä hyppysekuntia tietyn Unix-koneen C-kirjastot osaavat käsitellä. Hyppysekunteja (leap seconds) lisätään muutaman vuoden välein joulukuun lopussa eli 31.12.XXXX 23:59:60. Kaukaisessa tulevaisuudessa olevien tapahtuman tarkkaa paikallista aikaa ei itse asiassa voi vielä ihan tarkkaan tietääkään, koska tulevaisuuden hyppysekunteja ei ole määritelty kuin pariksi vuodeksi eteenpäin. Samoin vaikkapa POSIX-standardointikomitea saattaa jälleen kerran muuttaa unixtime:n tarkkaa määritelmää joskus tulevaisuudessa. Alussa mainittu unixtime:n määritelmä on itse asiassa alkuperäinen, perinteinen versio. Standardiajan määritelmääkin on muutettu silloin tällöin. Nykyään yleisin lienee UTC kun ennen käytettiin GMT:tä.