java - 将 Apple 的 Cocoa 框架 Epoch (reference_date) 转换为 Java Date

标签 java ios datetime date epoch

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/

相关文章:

ios - Swift:UITableViewController 中的 PrototypeCells 问题

c# datetime 值基于当前日期传递

java - Android:上下文菜单不显示 ListView 的成员由 LinearLayout 定义?

java - Java 中的计数和终止字符串

objective-c - Xcode 4.5 ios6 按钮在 objective-c 中打开新 View

ruby - Rails 比较 date.end_of_day.to_datetime 和 date.to_datetime.end_of_day 返回的日期对象值时返回 false

Python 将不寻常的日期字符串转换为日期时间格式

java - 如何删除 URL 中的参数?

java - 在java eclipse项目中用记录器替换system.out.println的步骤是什么?

ios - SwiftyJSON 添加 JSON 对象数组