For to år siden var jeg (Jesper) til en præsentation af JSR-310. I dag er jeg det igen. Spooky!
Udgangspunktet er at Date og Calendar hver for sig og samlet set noget rod. JSR-310 er en ny start. Ellere, det er en gammel, ny, start, for det kommer IKKE med i JDK7, men først i 8. Forklaringen: Gutten, der koder det, er frivillig og kun delvist sponseret. Han har også små børn. Siger på en måde også noget om “tid”, ikke?
Løsningen er baseret på at adskille de vanvittige astronomers behov fra de kedelige forretningsfolks behov:
Instant – absolut tid – 96 bits af nanosekunder efter universets fødsel.
Duration – delta tid
Her er problemet, fordi dage er ikke bare 24*60*60 sekunder. Mennesker bruger felter til at forklare tid, og der er forskellige måder at måle dette på: TAI, UT1 and UTC. Men det en længere forklaring.
Tidszoner og sommertider er også en længere forklaring: Uha! Forestil dig f.eks. opdatering af tidszonereglerne mens et JVM kører. Suk.
Eller hvad med den gregorianske kalender – den er afhængig af lokation for at være historisk korrekt.
Men i virkeligheden er indlægget lidt af en perle i gennemgang af at konstruere et godt API til et kompliceret emne, som IMHO bliver rigtig pænt.
Plus: God taler, på den britiske understatede måde. Fornuftige defaults i JSR-310.
Minus: Ét ord: HvorLangTidKanDetTageAtFåStyrPåTiden?