首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google Bookmark导出日期格式?

Google Bookmark导出日期格式?
EN

Stack Overflow用户
提问于 2009-02-12 03:31:07
回答 9查看 15.2K关注 0票数 15

我一直致力于从google书签生成的导出文件中解析出书签。此文件包含以下日期属性:

ADD_DATE="1231721701079000“

ADD_DATE="1227217588219000“

这些不是标准的unix样式的时间戳。有人能给我指出正确的方向吗?如果你真的想帮我,我会用c#解析它们。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-02-12 03:40:32

1231721701079000看起来很像1970年1月1日以来的时间,单位是微秒。

代码语言:javascript
运行
复制
perl -wle 'print scalar gmtime(1231721701079000/1_000_000)'
Mon Jan 12 00:55:01 2009

我会在已知的时间做一些书签,然后试着确认一下。

票数 7
EN

Stack Overflow用户

发布于 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时间戳的转换公式(您可以重新排列+/×和-/÷,但会失去一点精度):

代码语言:javascript
运行
复制
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模块一样。

票数 18
EN

Stack Overflow用户

发布于 2015-11-26 00:35:13

在Javascript中,代码将如下所示

代码语言: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);
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/539900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档