如何将注册表中的reg_binary值转换为c#.net中的datetime?

时间:2012-09-05 06:47:30

标签: c# registry

我有一个应用程序从注册表中读取PatternFileDate的{​​{1}}类型REG_Binary。我从注册表中获取了PatternFileDate的值作为字节数组。如何以日期或字符串格式获取数据?

  • 主键:HKEY_LOCAL_MACHINE
  • 子键:SOFTWARE\Symantec\Symantec Endpoint Protection\AV
  • 价值:PatternFileDate

感谢。

1 个答案:

答案 0 :(得分:2)

这是解码值的方法。

示例注册表值:

  

<强> 28030a

前两个字符代表年份,后两个字符代表月份,最后两个字符代表月份。每个数字都表示为十六进制值。

所以,从我们的例子来看:

  • 年度:小数点2840。此值将添加到1970的起始年份。所以1970 + 40 = 2010。这一年 2010
  • :小数点033。月份为零,所以这是第四个月,即四月。例如,12月将为0B
  • 日期:小数点0a10。月中的某一天是基于一天的,因此该月的日期是实际的十进制值。在我们的例子中,月份的日期是 10th

因此示例值导致:

  

2010年4月10日