Zeitformat vom UNIX-Format in TDateTime |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
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;