0

我想在 Windows 注册表 wrt 日期中添加一些值,例如。我有一个例子,它显示字符串 value=reg 和 value =4022299。这个值实际上代表 2059 年 11 月 1 日,我不知道从哪里可以为不同的日期生成不同的数字,所以我可以添加到我的注册表中。

任何人都可以帮助我吗?提前谢谢。

4

1 回答 1

1

数值表示从 epoc 到指定日期和时间的多个时间单位(请注意,日期和时间在计算机中是相同的)。

一个常见的单位是秒,也就是“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);
于 2013-01-30T06:35:27.817 回答