谷歌浏览器商店扩展程序的安装日期以什么格式
本文关键字:安装 日期 以什么 格式 程序 扩展 谷歌浏览器 | 更新日期: 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);
无需使用任何手动偏移和分割等...