iPhone 客户端将日期作为 Apple 的 Cocoa 框架 Epoch(自 2001 年以来的毫秒)发送到 Java 服务器,当您转换为 Java 日期(自 1970 年以来)时,它转换为 1980 年为 2011 年,将 30 年添加到 cocoa 枣会转换吗?或者我可以使用任何其他方法进行此转换吗?
最佳答案
我建议通过添加适当的秒数来将秒数调整为 Unix 纪元时间(自 1970 年以来),而不是增加年份。我不是很肯定,但我的直觉告诉我,在某些情况下(闰年和日历的小调整等),撞到年份本身是错误的。
如果您需要将自 2001 年 1 月 1 日以来的秒数相加,您要查找的数字是 +978307200。如果您需要毫秒,只需乘以 1000。
例如,我有一些代码需要检测 Apple 与 Unix 纪元日期(自纪元以来的秒数),并在构造函数中将它们转换为自 Unix 纪元以来的毫秒数的 Java 日期:
// Earlier than 1985 in Unix, must be Apple
if(date < 473410800) {
m.date = new Date((date + 978307200L) * 1000);
} else {
m.date = new Date(date * 1000);
}
关于java - 将 Apple 的 Cocoa 框架 Epoch (reference_date) 转换为 Java Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6998541/