首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FindSystemTimeZoneById.UTC不同于GetSystemTimeZones UTC?

FindSystemTimeZoneById.UTC不同于GetSystemTimeZones UTC?
EN

Stack Overflow用户
提问于 2013-10-16 15:51:09
回答 1查看 5.8K关注 0票数 1

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

我在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。什么给予?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-16 16:54:34

这种怪癖是因为您搜索时区的方式不同而造成的。全名的前一个来自注册表,由您使用GetSystemTimeZones()启动生命,它枚举注册表项。

底部的一个是由FindSystemTimeZoneById()生产的,它有一个捷径:

代码语言:javascript
复制
public static TimeZoneInfo FindSystemTimeZoneById(string id)
{
    if (string.Compare(id, "UTC", StringComparison.OrdinalIgnoreCase) == 0)
    {
        return Utc;
    }
    // etc..
}

所以你会得到一个名字很短的预烤的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19408008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档