ブラウザーの履歴を保存するファイルにある日付を通常の DateTime に変換する際に問題が発生しています。
ファイルは次の場所にあります: C:\Users[ユーザー名]\AppData\Roaming\Mozilla\Firefox\Profiles[プロファイル名]\places.sqlite
問題のテーブルは [moz_places] です。
列: [last_visit_date]
UNIX エポックと Webkit 形式 (Chrome の使用など) を使用してみましたが、どちらも期待どおりの結果をもたらしません。
これが私のUnix変換です(機能していません):
public static DateTime FromUnixTime(long unixTime)
{
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return epoch.AddSeconds(unixTime);
}
これは私の Webkit 変換コードです: (これらの日付でも動作しません。chromes Webkit の日付で動作します)
public static DateTime ConvertWebkitTimeToDateTime(long ticks)
{
//Set up a date at the traditional starting point for unix time.
DateTime normalDate = new DateTime(1970, 1, 1, 0, 0, 0, 0);
//Subtract the amount of seconds from 1601 to 1970.
long convertedTime = (ticks - 11644473600000000);
//Devide by 1000000 to convert the remaining time to seconds.
convertedTime = convertedTime / 1000000;
//Add the seconds we calculated above.
normalDate = normalDate.AddSeconds(convertedTime);
//Finally we have the date.
return normalDate;
}
では、Firefox が保存しているこれらの日付はどうなるのでしょうか? 以下は、すべて今日または昨日の前後の日付の例です (2013 年 10 月 17 日頃)。
1373306583389000
1373306587125000
1373306700392000
ヘルプやドキュメントへのリンクは素晴らしいものです。ありがとうございます。