问题描述
我在一个名为Memo Lite的旧iOS应用程序使用的sql数据库中发现了奇怪的日期代码。该列标记为LMT,可能是上次修改时间的缩写。它们是如何构造的,以及如何将其转换为可读格式,例如yyyy-mm-dd HH:mm:ss? 我知道Unix时间以及Google表格如何处理时间。
日期/时间代码示例:
357931095.942149 = 2012-05-05
330432567.859129 = 2011-06-22
293964817.803674 = 2010-04-26
我不知道该格式是否有时间,它看起来是这样,但是没有显示在应用程序中。
日期/时间格式代码,参考示例: https://support.google.com/docs/answer/3094139?hl=en
解决方法
一些数学运算表明距纪元已几秒。不是通常的1970-01-01,而是2001-01-01。
- 2001-01-01 + 293964817 seconds = 2010-04-25 08:53:37
- 2001-01-01 + 330432567 seconds = 2011-06-22 10:49:27
- 2001-01-01 + 357931095 seconds = 2012-05-05 17:18:15
小数部分为微秒。例如,293964817.803674是2010-04-25 08:53:37.803674。
您提到这是一个iOS应用,因此很可能是CFAbsoluteTime。