English 中文(简体)
从备份中分析 iPhone SMS 文件的“日期”字段
原标题:Parsing "date" field of iPhone SMS file from backup

虽然这本身并不是一个方案编制问题,但它相互关联。

所以我想弄清楚如何解析从 iPhone 上备份的 SMS DB 。 我查看“ 消息” 表格, 特别是“ 日期” 字段。 我注意到, 最近的邮件使用不同的编号系统来显示日期/ 时间。 我缩小到 iMessage 的开关, 因为我在 13 184 770904 上发了一条信息, 回复在 340 164736 上。 我知道, 这些邮件发送的时间差不到一个小时, 但是它们显示 & gt; 30 年的差异 。

有人知道如何精确计算使用这个新系统的日期吗?它使用不同的时代还是我需要做一些疯狂的数学?

编辑: 最近的信息也受到影响。 文本( 绿色泡泡) 以通常设定的日期存储, 通过 iMessage (蓝色泡泡) 的任何信息都以不同的日期表示方式存储 。

问题回答

由于备份导出为 SQLite 数据库格式, 因此此选项将如何将数字转换为 SQLite 中的真实日期 :

select
    datetime(date + strftime( %s ,  2001-01-01 00:00:00 ),
        unixepoch ,  localtime ) as date,
    *
from message

我不知道能否得到正确的日期,但当我今天这样做时,我注意到 date 列不是标准的unix时间,而是一个更长的数字,结尾处似乎有9个零,例如 4445486080000000 。 这就是我为获得正确日期所做的:

select
    datetime(substr(date, 1, 9) + 978307200,  unixepoch ,  localtime ) as f_date,
    text
from message

这是2001年1月1日之后的几秒钟, 而不是1970年1月1日之后的Unix。 因此, 要将它转换为 Excel 您的公式是 = Cell/ (60*60**24) + “ 1/1/2001 ” 。

Apple 使用 Mac 绝对时间( MacTime) 。 这从 01 - 01 - 2001 计算。 您看到的另一个时间戳是 UnixTime 。 从 01 - 01 - 1970 开始 。

要获得 UnixTime, 您必须在 MacTime 上添加 31 年。 这是 PHP - snipit:

$macTime = $d[ ZMESSAGEDATE ]; // MacTime column (from Whatsapp)
$unixTime =  $macTime + 978307200;
echo date("Y-m-d H:i:s", $unixTime);

The time difference is calculated using this website: https://www.timeanddate.com/date/durationresult.html?d1=1&m1=1&y1=1970&d2=1&m2=1&y2=2001&h1=0&i1=0&s1=0&h2=0&i2=0&s2=0

也许还有另一个答案

与我目前版本的iPhone/iOS gt; 4.3.3 合作。

Fomurla with time of messages: =Cell/(60*60*24) + "1/1/2001 7:00"

由于按mac计算的日期是2001年,而不是1970年,我们不得不在这一mac日期之外再增加一些。

2001-01-01之前,978307200000等于毫秒

转换为毫秒还需要乘以1000。

macDate * 1000 + 978307200000

波希米亚语是对的,

使用%S(资本)而不是 %s,因为时间是2001年以来的秒数而不是1970年以来的秒数。

https://www.sqlite.org/lang_datefunc.html” rel=“nofollow”>https://www.sqlite.org/lang_datefunc.html

%s      seconds since 1970-01-01
%S      seconds: 00-59

select datetime(date + strftime( %S , 2001-01-01 00:00:00 ), unixepoch , localtime ) as date, * from message





相关问题
Backing up my database is taking too long

On a windows mobile unit, the software I m working on relies on a sdf file as it s database. The platform that the software is targeted towards is "less than optimal" and hard resets every once and a ...

Cognos LAE Backup Automation (Batch File?)

Within Cognos 7.4 security.. one would create an LAE file to export all their users... directions here... http://www.cognos-install.co.uk/articles/backups/access_manager_export_to_lae.asp Now you ...

backup SQL Server 2005 database without data

I have one stored procedure to backup the database. It will backup metadata as well as data. Is there any option to back up the database with out data. ie, back up only the schema (Empty tables). I ...

SQL Server 2008 Auto Backup

We want to have our test servers databases updated from our production server databases on a nightly basis to ensure we re developing on the most recent data. We, however, want to ensure that any fn, ...

mysql dump stops when a row is updated

When i try to get a dump of a mysql database, the dump stops when a row in it is updated. How can i prevent that? I already tried following options with no result: -f (forces continu even when error)...

热门标签