如何从iPhone中的数据库解析日期

时间:2015-02-18 05:42:26

标签: java ios datetime

我有一个从我的iCloud帐户中检索到的.db文件。我试图从其中一个表解析日期字段。我在Java中这样做。我不太确定它是如何存储的,因为它似乎只是一个数字。

我正在取这个值并将其解析为一个long,它传递给java中的Date对象。但是,似乎总是在1970年1月的某个时候。

为日期存储的值:356898417在给我调用Date.toString

时给了我1970-01-04

3 个答案:

答案 0 :(得分:1)

默认日期构造函数接受一个参数,该参数等于自1970年1月1日午夜以来经过的毫秒数。

Date(long millisec)

提供存储在iCloud中的实际日期时间更具体。

答案 1 :(得分:0)

如果以秒为单位给出该数值,则需要将其乘以1000以使其达到毫秒。

例如:

 String dateAsText = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
                          .format(new Date(356898417 * 1000L));

答案 2 :(得分:0)

我明白了。它们存储在Mac绝对时间(seconds)

long valueStoredInIphone = (something);
long millis = (valueStoredInIPhone * 1000) + 978307200000L;
Date dateSent = new Date(millis);
  

http://linuxsleuthing.blogspot.com/2012/10/whos-texting-ios6-smsdb.html