← Back to team overview

sslug-teknik team mailing list archive

Re: Negative unix timestamps

 

In <b1iq2u$817$1@xxxxxxxxxxxx> "Lars B. Dybdahl" <Lars@xxxxxxxxxx> writes:

>Er der nogen her, som kan uddybe problematikken, og evt. angive nogle 
>alternativer til glibc's mktime(), der gør det muligt at bruge en 
>sekund-baseret tidsregning før 1970?

Det kommer lidt an på hvad det skal bruges til, men hvis det skal være
meget generelt anvendeligt, så er det mest oplagte at lave din egen 
tids-repræsentation. F.eks. baseret på en kombination af det Julianske
dag-nummer og antal sekunder siden midnat den pågældende dag.

Konvertering mellem en dato og Juliansk dagnummer kan du se her:
http://www.tondering.dk/claus/cal/node3.html#SECTION003150000000000000000

Hvis du ikke skal længere tilbage end 17. november 1858 er den 
modificerede Julianske dag nok nemmere at arbejde med.

>Eftersom Posix standarden ikke håndterer skudsekunder og derfor, såvidt jeg 
>forstår, alligevel ikke bliver overholdt

Whoa - hvad mener du med det ?

Håndtering af skudsekunder er et ganske komplekst emne - i og med at
skudsekunder potentielt kan være negative, er det ret vanskeligt at
håndtere uden for den enkelte applikation. Mange tids-afhængige
applikationer får det rigtig dårligt, hvis tiden pludselig går
baglæns!

Måden det traditionelt håndteres på er SVJV at bruge NTP som er låst
til UTC, og så når der indtræffer et skudsekund gradvist at tilpasse
operativ-system uret til den nye UTC, så det sker i små trin.
-- 
"Hun svarede jo ikke på spørgsmålet!!" - Kristian Vilmann

Henrik Storner <henrik@xxxxxxx> 


References