我正在尝试在 IOS 中使用来自 Sqlite 的数据显示一个简单的表格视图。我的数据库日期存储为时间戳。我认为是一个 unix 时间戳,但如果我尝试使用dateWithTimeIntervalSince1970
我真的很奇怪的结果。
存储的日期行示例:
1352208510267
1352208512266
1352208514266
1352208516266
1352208530266
1352208532265
使用这样的查询
SELECT datetime(timestamp, 'unixepoch') from YOURTABLENAME
WHERE id = someId;
这应该将其转换为一些可读的值。
看看这里
我在这里找到了答案。我将结果与之前的答案进行了比较:
SELECT strftime('%Y-%m-%d %H:%M:%S', datetime(ZDATE+978307200, 'unixepoch', 'localtime')), datetime(ZDATE, 'unixepoch', 'localtime') FROM ZTABLE
带有苹果时代(2001 年 1 月 1 日)调整的查询给了我正确的日期:
"2015-09-29 20:50:51", "1984-09-28 20:50:51"
"2015-09-29 21:03:10", "1984-09-28 21:03:10"
"2015-09-29 21:25:30", "1984-09-28 21:25:30"
Unix 时间戳定义为自 1970 年 1 月 1 日以来的秒数。刚才,这大约是 1365525702。
您的值大一千倍,即它们以毫秒为单位。
确定您是否真的需要毫秒精度,然后在适当的位置添加* 1000
或/ 1000
。