SQLite 时间戳字段 - 转换为日期时间

Ugu*_*gur 7 sqlite timestamp

编辑

因此,在MikeT的帮助下,我想出了将Apple Cocoa Core Data 时间戳值转换为 Unix 纪元值的方法:

SELECT datetime(559951200 + 978307200, 'unixepoch', 'localtime');

559951200我的Apple Cocoa Core 数据时间戳在哪里

然后,为了获取本地时间,我需要localtimedatetime(...)SQLite 中的函数添加一个附加参数。


ScanSnap Home我正在恢复Mac 扫描仪和文档管理器的 sqlite 数据库。

它位于~/Library/Application Support/PFU/ScanSnap Home/Managed/ScanSnapHome.sqlite

数据库有许多带有时间戳字段的表。我无法将这些时间戳值转换为日期/时间。

例如:我有一个日期值,可以在用户界面中看到它为2018-09-30。该日期值转换为559951200数据库中的值(时间戳字段)。

假设该数字是纪元值,我尝试通过https://www.epochconverter.com将其转换为日期值,但它会给我September 30, 1987

我缺少什么?

Mik*_*keT 9

您的时间戳似乎是Apple Cocoa Core Data 时间戳

通过添加978307200,它会转换为纪元值。

因此 559951200 + 978307200 = 1538258400这是2018 年 9 月 29 日星期六 22:00:00的纪元时间 - (GMT,所以当地时间很可能是 30 号)。

Core Data 的开始日期为 2001/01/01,而不是 1970/01/01,因此 978307200 是两者之间的秒数差异。

查看Cocoa Core 数据时间戳转换器