我在一个 Android 项目中,需要使用 TDateTime
类型 (Delphi) 保存文件。我的日期以毫秒为单位,但我不知道如何将毫秒转换为 TDateTime
。
我有这样的东西:
Date dateInMillis = new Date(System.currentTimeMillis());
double dateInDouble = ???;
如果有任何可以帮助我解决此问题的提示,我将很高兴。
最佳答案
Delphi 的 TDateTime
以天为单位测量时间。 Java 遵循 Unix 标准并以毫秒为单位。要在两者之间进行转换,您需要按一天的毫秒数进行缩放,86400000
。
另一个区别是两个系统使用不同的纪元。 Java 使用的 Unix 纪元是 1970 年 1 月 1 日 00:00。Delphi 纪元是 1899 年 12 月 30 日 00:00。Unix 纪元表示为 Delphi TDateTime
是 25569
.
因此,要将 Unix 纪元的毫秒数转换为 Delphi 纪元的天数,您需要执行以下计算:
double delphiDateTime = unixMillis/86400000.0 + 25569.0;
关于java - 在 Java 中将毫秒转换为 TDateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18880189/