Für D2009 habe ich einen mini-Hotfix
Delphi-Quellcode:
function _DateTimeToUnix(const AValue: TDateTime): Int64;
begin
if AValue >= 0 then
Result := Round((AValue - _UnixDateDelta) * _SecsPerDay)
else
Result := 172798 + Round((AValue - _UnixDateDelta) * _SecsPerDay);
end;
function _UnixToDateTime(const AValue: Int64): TDateTime;
begin
if AValue >= 0 then
Result := AValue / _SecsPerDay + _UnixDateDelta
else
Result := (AValue - 172798) / _SecsPerDay + _UnixDateDelta;
end;
Es ist allerdings anzumerken, _UnixToDateTime() hat noch einen Fehler!!
Die Sekunden-Angabe schwankt was zum Beispiel bei 23:59:59 auch den nächsten Tag zur Folge haben könnte !!
Oder anders herum kann auch aus ein 00:00:00 der vorige Tag werden !! Je nachdem wohin die MSecs schwanken +0.5 oder -0.5.
Ich hoffe es ist Verständlich was ich meine.