我是Delphi
编程的新手。
通过Data Types
Delphi
时,我找到了TDateTime
。
在我的测试应用程序中使用它时,我发现TDateTime
对象为我提供了Float\Double
值。
我对TDateTime
如何计算Date Time
到Double
值感到好奇。
以下是我使用的示例代码:
var
LDateTime: TDateTime;
LFloat: Double;
begin
LDateTime := now;// current DateTime
LFloat:= LDateTime; // provide me a float value
end;
是否使用任何公式从Windows计算Date and Time Value
?
有人可以建议/提供有关TDateTime
工作的更多信息吗?
提前致谢。
答案 0 :(得分:9)
浮点数代表自1999年12月30日以来的天数。因此浮点值= 1将是31.12.1899,2 = 01.01.1900,依此类推。时间节省了一天的一小部分。 0.25 = 06:00,0.5 = 12:00,0.75 = 18.00 ......
所以31.12.1899 12:00将等于1.5。
这使得TDateTime非常容易使用。为了获得几天的差异,只需减去两个DateTimes。
02.01.2015 - 01.01.2015 = 1
尽可能简单。为了得到小时差异,只需乘以24。
另请参阅Unit DateUtils中的函数。它们有时会派上用场。
答案 1 :(得分:0)
您正在寻找
function DateTimeToUnix(const AValue: TDateTime): Int64;
和
function UnixToDateTime(const AValue: Int64): TDateTime;
来自DateUtils.pas
的功能
TDateTime
值可以通过FormatDateTime
函数
//uses sysutils
var
k:double;
t:tdatetime
begin
t:=UnixToDateTime(1483909200);
showmessage(datetostr(t));
t:=strtodate('08.01.2017');
k:=DateTimeToUnix(t);
showmessage(k.ToString);
end;