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

How to parse date from database in iPhone

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

我正在获取这个值并将其解析为一个长整数,然后传递给 java 中的 Date 对象。然而,似乎总是在1970年1月的某个时候。

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

时给我 1970-01-04

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

Date(long millisec)

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

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

例如:

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

我明白了。它们存储在 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