Home » Tipps & Tricks » Object Pascal » Datumswerte » Zeitformat vom UNIX-Format in TDateTime
Zeitformat vom UNIX-Format in TDateTime
Die Funktion wandelt einen Unix-Timestamp in ein ’normales‘ Datum um. Der Parameter UseBias gibt an, ob Zeitverschiebung mit beachtet werden soll.
function TimeStampUnixToHuman(const UnixStamp: cardinal; UseBias: boolean): TDateTime; var Date: TDateTime; iUnix: cardinal; hh, mm, ss: cardinal; TZI: TTimeZoneInformation; const FirstOf1970 = 25569; begin Result := Firstof1970; case GetTimeZoneInformation(TZI) of $FFFFFFFF: UseBias := False; end; if UseBias then iUnix := UnixStamp - ((TZI.Bias + TZI.DaylightBias) * 60) else iUnix := UnixStamp; hh := iUnix mod 86400; mm := hh mod 3600; hh := hh div 3600; ss := mm mod 60; mm := mm div 60; Result := (UnixStamp div 86400) + FirstOf1970 + EncodeTime(hh, mm, ss, 0); end;