たとえば、Windowsレジストリの日付に値を追加したい。文字列値= regおよび値= 4022299を示す1つの例があります。この値は実際には 2059 年 11 月 1 日を表しています。日付ごとに異なる数値を生成できる場所がわからないため、レジストリに追加できます。
誰でも私を助けてくれますか?よろしくお願いします。
数値は、エポックから指定された日付と時刻までの時間単位の数を表します (日付と時刻はコンピューターでは同じものであることに注意してください)。
一般的な単位は秒で、別名「Unix 時間」(1970 年 1 月 1 日 UTC からの秒数) です。.NET は 100 ナノ秒の「ティック」を使用します。ミリ秒も使用できます。
値 4022299 は、Unix 時間で秒の場合、実際には 1970 年 2 月の日付を表しているため、そこで使用されているアルゴリズムはわかりません。
互換性のために Unix 時間を使用することをお勧めします。これは、Unix 時間値を生成するために必要なコードです。
public static Int32 GetUnixTimeStamp(DateTime date) {
DateTime epochStart = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return (date - epochStart).Ticks * 100;
}
次のように使用します。
DateTime something = new DateTime( 2059, 11, 1 );
Int32 unixTime = GetUnixTimeStamp( something );
レジストリに追加するには:
Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\\SomeKey\\SomeValue", unixTime);