Rob*_*obG 11 javascript google-chrome date
Chrome 书签文件是 JSON,其中包含表示特定日期和时间的“date_ added”值,例如
{
 "checksum": "05b8bba8b5f0e9ad1cc8034755557735",
 "roots": {
    "bookmark_bar": {
       "children": [ {
          "children": [ {
             "date_added": "13170147422089597",
             "id": "121",
             "name": "NativeScript: Getting Started Guide",
             "type": "url",
             "url": "https://docs.nativescript.org/tutorial/chapter-0"
          } ],
...
我尝试将值视为纳秒并传递给 Date 构造函数:
new Date(13170147422089597 / 1000); // 2387-05-07T06:17:02.089Z
但这似乎不正确。
值“13170147422089597”应如何转换为日期或日期字符串?
Rob*_*obG 11
Chrome 书签时间值是 1601-01-01T00:00:00Z 纪元的微秒。转换为日期:
例如
var timeValue = '13170147422089597';
new Date(Date.UTC(1601,0,1) + timeValue / 1000); // 2018-05-07T06:17:02.089Z
将值 Date.UTC(1601,0,1) 存储为常量 (-11644473600000) 并转换为函数给出:
var timeValue = '13170147422089597';
new Date(Date.UTC(1601,0,1) + timeValue / 1000); // 2018-05-07T06:17:02.089Z
小智 7
它是 WebKit/Chrome 时间戳,代表自 1601/1/1 UTC 以来的微秒。
它来自 Windows NT 时间戳(自 1601/1/1 UTC 以来为 100 纳秒),可用作 FileTime 结构。
https://www.epochconverter.com/webkit 中有一个在线 WebKit/Chrome 时间戳转换器
它也在那里提供它的代码。
但是代码是在 Python2 中的,所以我把它转录成 Python3,如下所示:
import datetime
def date_from_webkit(webkit_timestamp):
    epoch_start = datetime.datetime(1601,1,1)
    delta = datetime.timedelta(microseconds=int(webkit_timestamp))
    print(epoch_start + delta) # py3 requires () for print
date_from_webkit(int(input('Enter a Webkit timestamp to convert: '))) # py3 integrates raw_input() and input() into input()