NSDate Class Reference 为了得到一个体面的人类价值,你必须添加978307200(2001-01-01 00:00:00的纪元)。 这个查询应该给予你想要的:
.headers on
select datetime(v.visit_time + 978307200, 'unixepoch', 'localtime') as date, v.visit_time + 978307200 as epoch, v.visit_time, i.domain_expansion, i.url
from history_items i left join history_visits v on i.id = v.history_item
order by i.id desc
limit 100;
要转换Excel电子表格中 * history. db * 中的visit_time值,请在SQL Lite(Windows)的DB浏览器等工具中打开history.db文件,并将history_visits值导出到CSV文件。 打开CSV文件并创建一个列,在该列中以人类可读的时间(根据时区进行调整)填充值,然后使用以下公式转换NSDate:
3条答案
按热度按时间bq3bfh9z1#
它是自2001年1月1日00:00:00 UTC以来的秒数。一定是从
NSDate
来的。NSDate对象封装单个时间点,与任何特定的地理系统或时区无关。Date对象是不可变的,表示相对于绝对参考日期(2001年1月1日的00:00:00 UTC)的不变时间间隔。
为了得到一个体面的人类价值,你必须添加
978307200
(2001-01-01 00:00:00的纪元)。这个查询应该给予你想要的:
示例输出:
~/Library/Safari/History.db
*7gyucuyw2#
我发现domain_expansion字段在某些情况下为null,下面是修改后的查询:
ryevplcw3#
要转换Excel电子表格中 * history. db * 中的
visit_time
值,请在SQL Lite(Windows)的DB浏览器等工具中打开history.db文件,并将history_visits值导出到CSV文件。打开CSV文件并创建一个列,在该列中以人类可读的时间(根据时区进行调整)填充值,然后使用以下公式转换NSDate:
在上面的公式中,时间值位于单元格
C2
和我的时区GMT-5
中。要调整到您自己的时区,请调整最后一组括号中的语句。现在我用(-5/24)
来表示GMT-5
。当我第一次处理这个转换时,我错误地认为history.db中的时间是epoch time,从
1/1/1970
开始,并且不明白为什么会有这样的时间偏差。添加所需的转换因子+978307200
解决了这个问题。