谷歌浏览器商店扩展程序的安装日期以什么格式

本文关键字:安装 日期 以什么 格式 程序 扩展 谷歌浏览器 | 更新日期: 2023-09-27 18:31:55

我正在查看谷歌浏览器用于安装扩展程序的首选项文件,似乎install_time以奇怪的格式存储。

以下是文件中的一些示例日期:

"install_time": "13018473436573431",
"install_time": "13018473437125431",
"lastpingday": "13024047600974141",

它不会在 C# 应用程序中转换为 DateTime,并且似乎不是正常的 JavaScript 日期(这些只有 13 个数字)。

然是17个数字,真是太奇怪了。

这里有一些额外的调试信息,我输出我尝试调用新 DateTime("install_date") 时的日期和数字本身。

Program  Entry:
Ext Name: Clock
install_time: 1/2/0001 12:10:40 PM
install_time raw data: 13024070300259446
install_time (long):   13024070300259446
Program  Entry:
Ext Name: Googulator
install_time: 1/2/0001 12:10:40 PM
install_time raw data: 13024076154792655
install_time (long):   13024076154792655
Program  Entry:
Ext Name: Google News
install_time: 1/2/0001 12:10:40 PM
install_time raw data: 13024076389301659
install_time (long):   13024076389301659
Program  Entry:
Ext Name: Spotify - Music for every moment
install_time: 1/2/0001 12:10:40 PM
install_time raw data: 13024076418505659
install_time (long):   13024076418505659

谢谢

谷歌浏览器商店扩展程序的安装日期以什么格式

好吧

,我想我可能已经解决了,好吧,它肯定会产生今天的日期,如果时间加起来,你需要计算一下。考虑以下javascrpt:

var installTime = 13024070300259446;
var convertedTime = ( installTime - 11644473600000000 ) / 1000 ;//divide by 1000 because we are going to add milliseconds on to the base date
var date = new Date(convertedTime);
alert(date);

这是一个工作示例

原始公式是从这里获得的:

引用OP中的历史SQL语句,可以稍微修改一下得到 时间戳中的一些人类可读输出。如前所述, 时间戳是Webkit格式,因此需要一些调整才能获得 一些可以理解的东西。

选择网址.网址、

网址标题、urls.visit_count、urls.typed_count、 datetime(((urls.last_visit_time-11644473600000000)/1000000),'Unixepoch','localtime') 如last_visit_time,urls.hidden, datetime(((visits.visit_time-11644473600000000)/1000000),'Unixepoch','localtime') 如visit_time,visits.from_visit,访问.从网址过渡,访问 其中 urls.id = 访问.url

但是,/ 1000000的最初尝试没有成功,所以我尝试了/ 1000,这确实有效!(请参阅下面的编辑,了解为什么这不起作用)


为完整起见,由于您专门使用了 C# 标记,下面是 C# 版本:

long installTime = 13024070300259446;
long convertedTime = ( installTime - 11644473600000000 ) / 1000000 ;//divide by 1000000 because we are going to add Seconds on to the base date
DateTime date = new DateTime(1970,1,1,0,0,0,0);
date = date.AddSeconds(convertedTime);
Console.WriteLine(date);

编辑:在看到Garrett的答案后,很清楚为什么我必须在javascript示例中除以1000,而他在C#示例中除以1000000。因为 javascript 代码在基日期上添加毫秒,而 C# 只在基日期上添加秒。(注意:我已经更新了我的 C# 代码以反映这一点)

从 Webkit 时间转换为日期时间

谢谢大家的帮助。在浏览了musefan链接的有用链接后,我能够得到答案。它与穆斯凡的略有不同。为了更加清晰,我还添加了注释,以防将来有人需要帮助。

这是我使用的Musefan的来源:http://linuxsleuthing.blogspot.co.uk/2011/06/decoding-google-chrome-timestamps-in.html

        //The install time was 12:20 PM
        long rawTime = 13024081249872950;
        //Subtract the amount of seconds from 1601 to 1970.
        long convertedTime = (rawTime - 11644473600000000);
        //Devide by 1000000 to convert the remaining time to seconds.
        convertedTime = convertedTime / 1000000;
        //Set up a date at the traditional starting point for unix time.
        DateTime normalDate = new DateTime(1970, 1, 1, 0, 0, 0, 0);
        //Add the seconds we calculated above.
        DateTime googleDate = normalDate.AddSeconds(convertedTime);
        //Finally we have the date.
        System.Diagnostics.Debug.WriteLine("Final Date: " + googleDate.ToString());

输出:

最后日期: 9/19/2013 16:20:49

它似乎比格林威治标准时间-5(东部)差4小时。

您可以像这样轻松转换install_time:

DateTime date = new DateTime(1601,1,1).AddTicks(10 * installTime);

无需使用任何手动偏移和分割等...