procedure TForm1.FormCreate(Sender: TObject);
var
n: TDateTime;
i64: Int64;
s: Integer;
begin Memo1.Clear; Memo1.ReadOnly := True;
n := StrToDateTime('2014-05-02 10:37:35');
Memo1.Lines.Add( IntToStr( DateTimeToUnix(N) - )) ;//
Memo1.Lines.Add( IntToStr( DelphiToJavaDateTime(N ))); //
Memo1.Lines.Add( DateTimeToStr( JavaToDelphiDateTime(DelphiToJavaDateTime(N )))); //2014-05-02 10:37:35
with TRegistry.Create(KEY_WOW64_64KEY or KEY_ALL_ACCESS) do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion', False) then
begin
Memo1.Lines.Add(IntToStr(ReadInteger('InstallDate')));//
Memo1.Lines.Add(DateTimeToStr(UnixToDateTime(ReadInteger('InstallDate') + ))); //2014-05-02 10:37:35
i64 := ReadInteger('InstallDate'); //这里 必须先这样转为64位,不能直接 * 1000,直接的话,按integer类型计算,结果超过MaxInt了。
i64 := i64 * ;
Memo1.Lines.Add(DateTimeToStr(JavaToDelphiDateTime(i64))); //2014-05-02 10:37:35
end;
finally
Free
end;
end;
JavaToDelphiDateTime和DelphiToJavaDateTime有2个特点:
- 数值扩大1000倍,可能是精确到毫秒了。
- 自动进行时区的转换。