Thema: Delphi Unix Timestamp

Einzelnen Beitrag anzeigen

horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Unix Timestamp

  Alt 28. Mär 2005, 22:40
Gerne

Delphi-Quellcode:
function TimeStampHumanToUnix(const HumanStamp: tDateTime;
UseBias: boolean): cardinal;
var
iTime: integer;
hh, mm, ss, ms: word;
TZI: TTimeZoneInformation;

const
FirstOf1970 = 25569; //[s] seit 30.12.1899 bis 01.01.1970 (WinZeit -> UnixZeit)
OneDay = 86400; //in [s]
OneHour = 3600; //in [s]
OneMinute = 60; //in [s]

begin
Result := 0;

case GetTimeZoneInformation(TZI) of
$FFFFFFFF: UseBias := False;
end;

DecodeTime(HumanStamp, hh, mm, ss, ms);

{ Tage seit 1.1.1970 in Sekunden } 
iTime := (Trunc(HumanStamp) - FirstOf1970) * OneDay;
{ Stunden und Minuten und Sekunden aufaddieren } 
iTime := iTime + (hh * OneHour);
if UseBias
then iTime := iTime + ((mm + TZI.Bias + TZI.DaylightBias) * OneMinute)
else iTime := iTime + (mm * OneMinute);
iTime := iTime + ss;
if iTime < 0 then iTime := 0;
Result := iTime;

end;
  Mit Zitat antworten Zitat