保險起見, 應該通過: FloatToDateTime(); 或 TryFloatToDateTime(); 把一個數轉換到 TDateTime;
反向轉換就沒必要用函數了.
{使用 TryFloatToDateTime}
var
t: TDateTime;
d: Double;
begin
d := 0;
if TryFloatToDateTime(d, t) then
ShowMessage(DateTimeToStr(t)); //1899-12-30
end;
{使用 FloatToDateTime; 轉換失敗或遇到非法時間時會拋出異常}
var
t: TDateTime;
d: Double;
begin
d := 0;
t := FloatToDateTime(d);
ShowMessage(DateTimeToStr(t)); //1899-12-30
end;
{當時間是 1899年12月30日 0時0分0秒 0毫秒時, TDateTime 對應的時間值是 0}
var
d: Double;
t: TDateTime;
begin
t := StrToDateTime('1899-12-30 0:0:0:0');
d := Double(t);
ShowMessage(FloatToStr(d)); //0
end;