java - 在 Java 中将毫秒转换为 TDateTime

标签 java android delphi

我在一个 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/

相关文章:

java.sql.SQLIntegrityConstraintViolationException异常

java - Hibernate 5.x 删除基于部分复合 id 的记录?

java - 我正在尝试在 android 中运行前台服务,但每当我运行我的应用程序时,应用程序就会卡住并且不显示任何通知

javascript - 切换类以显示/隐藏导航在 Chrome for Android 4.2 (v31) 中不起作用

Delphi ADO 对来自 SQL Server 的十进制值进行四舍五入

java - 如何在文本文件更改时重新初始化 java servlet

java - 一种布局中图像的最大尺寸是多少?

android - 在 Android Studio 中使用 Gradle 管理 Google Maps API key

delphi - Delphi调试器显示????货币变量

multithreading - Windows API 安全终止线程