Ja, das 1899-Problem habe ich nun auch erkannt. Das sollte schon mal besser sein:
Delphi-Quellcode:
function DatetimeToUnixTime(Datetime: TDatetime): Int64;
var
t: TDatetime;
begin
if Datetime<0
then
t := trunc(Datetime) - frac(Datetime) - UnixDateDelta
else
t := Datetime - UnixDateDelta;
if t>0
then
Result := trunc(t*SecsPerDay + 0.5)
else
Result := trunc(t*SecsPerDay - 0.5);
end;
Für DateTimeToUnix habe ich noch keine kompakte Lösung.