1

我正在尝试在 IOS 中使用来自 Sqlite 的数据显示一个简单的表格视图。我的数据库日期存储为时间戳。我认为是一个 unix 时间戳,但如果我尝试使用dateWithTimeIntervalSince1970我真的很奇怪的结果。

存储的日期行示例:

1352208510267
1352208512266
1352208514266
1352208516266
1352208530266
1352208532265
4

3 回答 3

1

使用这样的查询

SELECT datetime(timestamp, 'unixepoch') from YOURTABLENAME
WHERE id = someId;

这应该将其转换为一些可读的值。

看看这里

于 2013-04-09T12:37:29.263 回答
1

我在这里找到了答案。我将结果与之前的答案进行了比较:

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"
于 2015-09-30T03:21:02.763 回答
0

Unix 时间戳定义为自 1970 年 1 月 1 日以来的秒数。刚才,这大约是 1365525702。

您的值大一千倍,即它们以毫秒为单位

确定您是否真的需要毫秒精度,然后在适当的位置添加* 1000/ 1000

于 2013-04-09T16:44:25.103 回答