如何将注册表中的reg#U二进制值转换为c#net中的datetime?
我有一个应用程序,它从注册表中读取Symantec的如何将注册表中的reg#U二进制值转换为c#net中的datetime?,c#,registry,C#,Registry,我有一个应用程序,它从注册表中读取Symantec的PatternFileDate,注册表类型为REG\u Binary。我已经从注册表中获取了作为字节数组的PatternFileDate值。如何获取日期或字符串格式的数据 主键:HKEY\U LOCAL\U机器 子关键字:SOFTWARE\Symantec\Symantec Endpoint Protection\AV 值:PatternFileDate 谢谢。这是您解码值的方法 注册表值示例: 28030a 前两个字符表示年份,后两个字符
PatternFileDate
,注册表类型为REG\u Binary
。我已经从注册表中获取了作为字节数组的PatternFileDate
值。如何获取日期或字符串格式的数据
- 主键:
HKEY\U LOCAL\U机器
- 子关键字:
SOFTWARE\Symantec\Symantec Endpoint Protection\AV
- 值:
PatternFileDate
谢谢。这是您解码值的方法 注册表值示例: 28030a 前两个字符表示年份,后两个字符表示月份,最后两个字符表示月份的日期。每个数字都表示为十六进制值 因此,从我们的例子来看:
- 年份:
十进制为28
。此值将添加到1970年的起始年份。因此40
。今年是2010年1970+40=2010
- 月份:
十进制为03
。这个月是以零为基础的,所以这是第四个月,也就是四月。例如,12月将是3
0B
- 月日:
十进制为0a
。月日是以一为基础的,因此月日是实际的十进制值。在我们的例子中,月份的日期是第10天10
字节[]PatternDate=(字节[])(SubKey.GetValue(“PatternFileDate”);YY=PatternDate[0]。ToString(“X”);MM=PatternDate[1]。ToString(“X”);DD=模式日期[2]。ToString(“X”);Year=Convert.ToString(1970+int.Parse(YY,System.Globalization.NumberStyles.HexNumber));Month=Convert.ToString(1+int.Parse(MM,System.Globalization.NumberStyles.HexNumber));Day=Convert.ToString(int.Parse(DD,System.Globalization.NumberStyles.HexNumber))//注册值-2A 08 04-预期日期-2012年9月5日它与我发布的代码一起工作。谢谢你的支持。