我一直致力于从google书签生成的导出文件中解析出书签。此文件包含以下日期属性:
ADD_DATE="1231721701079000“
ADD_DATE="1227217588219000“
这些不是标准的unix样式的时间戳。有人能给我指出正确的方向吗?如果你真的想帮我,我会用c#解析它们。
发布于 2009-02-12 03:40:32
1231721701079000看起来很像1970年1月1日以来的时间,单位是微秒。
perl -wle 'print scalar gmtime(1231721701079000/1_000_000)'
Mon Jan 12 00:55:01 2009我会在已知的时间做一些书签,然后试着确认一下。
发布于 2013-09-08 22:45:46
Chrome在Bookmarks文件和历史文件中都使用了修改后的Windows时间格式(“Windows epoch”)作为时间戳。Windows时间格式是自1601年1月1日以来的100 is数。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模块一样。
发布于 2015-11-26 00:35:13
在Javascript中,代码将如下所示
function chromeDtToDate(st_dt) {
var microseconds = parseInt(st_dt, 10);
var millis = microseconds / 1000;
var past = new Date(1601, 0, 1).getTime();
return new Date(past + millis);
}https://stackoverflow.com/questions/539900
复制相似问题