我一直在到处找,却找不到答案。为什么卷饼不一样??

我在MSDN上做了一些调查,并看到了以下内容:http://msdn.microsoft.com/en-us/library/system.timezoneinfo.findsystemtimezonebyid.aspx
其中明确规定:
FindSystemTimeZoneById尝试将id与Windows和Windows下注册表的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time分支的子键名称匹配。此分支不一定包含时区标识符的全面列表。
所以我想这意味着它每次都要去登记处?
但这就混淆了这个问题:http://msdn.microsoft.com/en-us/library/system.timezoneinfo.utc.aspx
并说:
这是一个内置对象;有关此TimeZoneInfo对象的信息不会从注册表中检索。
因此,看来我对FindSystemTimeZoneById()的调用实际上是短路并返回TimeZoneInfo.UTC,根本不去注册表!不过,我不知道,因为我想要另一个版本的DisplayName。什么给予?
发布于 2013-10-16 16:54:34
这种怪癖是因为您搜索时区的方式不同而造成的。全名的前一个来自注册表,由您使用GetSystemTimeZones()启动生命,它枚举注册表项。
底部的一个是由FindSystemTimeZoneById()生产的,它有一个捷径:
public static TimeZoneInfo FindSystemTimeZoneById(string id)
{
if (string.Compare(id, "UTC", StringComparison.OrdinalIgnoreCase) == 0)
{
return Utc;
}
// etc..
}所以你会得到一个名字很短的预烤的。
https://stackoverflow.com/questions/19408008
复制相似问题