在Windows上翻译sqlite3时间戳格式

时间:2013-04-19 17:54:29

标签: database sqlite unix-timestamp

很抱歉,如果这听起来像是一个谜题,但它确实让我困惑了一段时间。 :)

从sqlite3 db文件中,其中一条记录的last_visit_time字段值为13010301178000000(INTEGER类型)。

为什么13010301178000000 = 4/12/2013 9:32:58PM? (4/12/2013 9:32:58PM是由现有工具获得的,我对它在内部的翻译方式一无所知。

有人能说明这是如何翻译的吗?

我看了http://www.epochconverter.com/,但没有运气。

感谢。

1 个答案:

答案 0 :(得分:3)

1601年1月1日是Windows timestamps的时代。

但是,这些时间戳使用100纳秒的间隔,因此看起来您的值除以10,或者由于某种原因您错过了零。

要转换为/从Unix时间戳转换,除以/乘以1000000以在秒和微秒之间转换,并调整为1970和1601之间的偏移,以秒为单位。