Registriert seit: 1. Jul 2003
347 Beiträge
Delphi 2007 Professional
|
Re: Unix Timestamp
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;
|
|
Zitat
|