Als programmeur zou je ook moeten weten dat dit supercomplex kan zijn als je het zelf moet doen. Puur afhankelijk van wat je aan het maken bent, heb je heel erg te maken met tijd, tijdzones, schrikkelsecondes, historische gegevens.
Zo zijn er landen die ergens een dag hebben overgeslagen, zijn er minuten met 61 seconden geweest, zijn per periodes waar we van kalender zijn gewisseld en 3 weken hebben overgeslagen (In sommige landen), gebruiken mensen in hetzelfde gebied twee verschillende tijdzones, zijn er tijdzones die 15 minuten afwijken. Het gebeurd soms meermalen per jaar dat er landen hun zomer/wintertijd cyclus veranderen, enzovoorts, enzovoorts, enzovoorts.
Het mooiste 'tijdprobleem' wat ik als voorbeeld ken is 'Het milleniumprobleem' dat door sommige mensen als 'overdreven' en 'er was niks aan de hand' werd afgewimpeld. Er was uiteraard niets aan de hand (op wat kleine dingetjes na) omdat er heel veel mensen heel hard aan gewerkt hadden.
Voor degenen die het niet kennen (de jongeren

): De basis van het probleem was dat vroeger opslag heel duur was. Om die reden werden 'tijd' in 2 cijfers voor het jaartal gezet. Dus dus 1983 werd weggeschreven als 83, 1999 werd weggeschreven als 99. Scheelt 2 bytes per transactie. Toen werd het 2000 (00).
Let op wat het beveiligingssysteem van de stroomcentrale denkt:
Hey, ik heb -99 (minus 99 dus) jaar geen onderhoud gehad. Dat is geen 'normale' situatie. Dus onveilig. Dus ik ga uit. (Deze conclusies hadden vrijwel alle iets oudere stroomcentrales in Europa. Want er was een 'onlogische' status in een veiligheidssysteem.) De oplossing was heel simpel. Tegen de software zeggen "Is het getal groter dan 70, dan is het 1900 + de waarde. Is het getal kleiner dan 70, dan is het 2000 + de waarde". Heel simpel. Maar het moest wel geprogrammeerd worden.
Zo waren er nog veel meer zaken. Financiele transacties die ineens terug in de tijd gingen. Certificaten die ineens pas over 95 jaar actief werden, enzovoorts, enzovoorts, enzovoorts.
Tijd is een gedoe. Voor de meeste zaken is het voldoende om gewoon de lokale systeemtijd (of timestamp) te gebruiken en klaar. Een computer weet tenslotte niks van "3 januari 2012". Dat is een mensending. Maar voor heel veel zaken kan het wel degelijk een gedoe zijn.