在Java中将毫秒转换为TDateTime

Dan*_* S. 4 java delphi android

我在Android项目中需要保存TDateTime类型为(Delphi)的文件.我的日期是毫秒,但我不知道如何将毫秒转换为TDateTime.

我有这样的事情:

Date dateInMillis = new Date(System.currentTimeMillis());
double dateInDouble = ???;
Run Code Online (Sandbox Code Playgroud)

我会很高兴有任何提示可以帮助我解决这个问题.

Dav*_*nan 9

德尔福的TDateTime测量时间以天为单位.Java遵循Unix标准并以毫秒为单位进行测量.要在两者之间进行转换,您需要按一天中的毫秒数进行缩放,86400000.

另一个区别是两个系统使用不同的时期.Java所使用的Unix时代是1970年1月1日00:00.德尔福时代是1899年12月30日00:00.以德尔福TDateTime为代表的Unix时代是25569.

因此,要将从Unix时代的毫秒转换为德尔福时代的天数,请执行以下计算:

double delphiDateTime = unixMillis/86400000.0 + 25569.0;
Run Code Online (Sandbox Code Playgroud)