使用 C# 从浏览器历史记录中获取每个网站花费的时间

问题描述 投票:0回答:2

我已经编写了代码来使用 Winforms C#.Net 获取用户在其计算机上访问的网站的浏览器历史记录

但是,我还需要获取他在每个网站上花费的时间,例如,输出应该是:

约翰,www.stackoverflow.com,20 分钟。

使用 SQLite 连接读取历史文件并填充数据表。 使用此链接中的方法 - https://social.msdn.microsoft.com/Forums/vstudio/en-US/3e9f3588-ad0b-49af-b269-2abfda0b9abc/how-to-get-the-browser-history-in-program-using-c ?论坛=csharpgeneral

但是“Visits”表的“Visit_duration”列不提供在每个网站上花费的时间。请参阅所附屏幕截图中的红色圆圈。

请告知我是否使用了正确的色谱柱。如果是,我将如何转换此列以获得以小时或分钟为单位的准确时间

编辑:

虽然 @imsmn 的回复很好,但我还需要一个 Sum of "Visit_duration" 。请注意,表 2(访问)的“URL”列与表 1(url)的“ID”列匹配。因此,我希望将表 2“Visit_duration”的总计按表 2“URL”分组。匹配的 'Where 子句是, table1["ID") = table2["URL") 。请帮忙

c# winforms browser-history
2个回答
2
投票

last_visit_time
visit_time
(实际上是所有时间戳)自 1601-01-01 以来以 微秒存储。似乎这是 WebKit 时间戳的默认格式(chrome 以前使用过 webkit)。

这意味着,您所要做的就是将给定的微秒添加到基准日期。

DateTime baseDate = new DateTime(1601, 01, 01);
DateTime lastVisitDate = baseDate.AddSeconds(13268117172386444 / 1000000); // Convert to seconds by dividing with 1.000.000

以该示例为例,结果将是

14.06.2021 04:06:12

计算持续时间同样简单 - 添加微秒并减去基准日期。

TimeSpan duration = baseDate.AddSeconds(811945003 / 1000000).Subtract(baseDate);

在这种情况下,用户在网站上花费了

00:13:31


0
投票

我知道这篇文章已经很老了,但我目前正在寻找一种从同一网络上的计算机中提取 chrome 和 Edge 浏览历史记录的方法。您能完整分享您的解决方案吗? 预先感谢。

© www.soinside.com 2019 - 2024. All rights reserved.