我一直致力于从 google 书签生成的导出文件中解析出书签。此文件包含以下日期属性:
ADD_DATE="1231721701079000"
ADD_DATE="1227217588219000"
这些不是标准的 unix 样式时间戳。有人可以在这里指出我正确的方向吗?如果您真的想帮助我,我将使用 c# 解析它们。
最佳答案
Chrome 在 Bookmarks
文件和历史文件中都使用 Windows 时间格式的修改形式(“Windows epoch”)作为其时间戳。 Windows 时间格式是自 1601 年 1 月 1 日以来的 100ns-es 数。Chrome 格式是自同一日期以来的微秒数,因此大 1/10。
要将 Chrome 时间戳与 Unix 纪元相互转换,您必须转换为秒并补偿两个基本日期时间 (11644473600) 之间的差异。
这是 Unix、JavaScript(Unix 以毫秒为单位)、Windows 和 Chrome 时间戳的转换公式(您可以重新排列 +/× 和 -/÷,但会损失一点精度):
u : Unix timestamp eg: 1378615325
j : JavaScript timestamp eg: 1378615325177
c : Chrome timestamp eg: 13902597987770000
w : Windows timestamp eg: 139025979877700000
u = (j / 1000)
u = (c - 116444736000000) / 10000000
u = (w - 1164447360000000) / 100000000
j = (u * 1000)
j = (c - 116444736000000) / 10000
j = (w - 1164447360000000) / 100000
c = (u * 10000000) + 116444736000000
c = (j * 10000) + 116444736000000
c = (w / 10)
w = (u * 100000000) + 1164447360000000
w = (j * 100000) + 1164447360000000
w = (c * 10)
请注意,这些数字非常大,因此您需要使用 64 位数字,或者像使用 PHP 的 BC-math 模块一样将它们作为字符串处理。
https://stackoverflow.com/questions/539900/