C# TimeZoneInfo.GetSystemTimeZones错误的时区(名称)

C# TimeZoneInfo.GetSystemTimeZones错误的时区(名称),c#,.net,timezone,C#,.net,Timezone,Microsoft定义了所有时区及其名称的名称 例如,110西欧洲标准时间(GMT+01:00)阿姆斯特丹、柏林、伯尔尼、罗马、斯德哥尔摩、维也纳 时区的名称是错误的,因为它应该是而不是Western Perphaps您知道检索正确时区列表的解决方案吗?以下几点: 您链接到的页面仅对Windows Embedded 1.1有效-这是一款过时且不推荐使用的产品。该页仅供历史参考。Microsoft不维护包含现代Windows和.NET支持的时区列表的网页,因为随着地理政治的变化,世界时区的更新,

Microsoft定义了所有时区及其名称的名称

例如,110西欧洲标准时间(GMT+01:00)阿姆斯特丹、柏林、伯尔尼、罗马、斯德哥尔摩、维也纳

时区的名称是错误的,因为它应该是而不是Western

Perphaps您知道检索正确时区列表的解决方案吗?

以下几点:

  • 您链接到的页面仅对Windows Embedded 1.1有效-这是一款过时且不推荐使用的产品。该页仅供历史参考。Microsoft不维护包含现代Windows和.NET支持的时区列表的网页,因为随着地理政治的变化,世界时区的更新,这些值经常发生变化。相反,请在命令行上使用.NET的
    TimeZoneInfo.GetSystemTimeZones()
    ,或
    tzutil.exe/l

  • 您描述的值类似于操作系统语言为英语时在
    TimeZoneInfo
    对象上返回的
    DisplayName
    属性。这些值主要用于时区选择,即从可用时区的下拉列表中选择时区。因此,Windows选择为某些时区提供城市名称,而不是更广泛的通俗名称

  • 要获得类似于
    “中欧时间”
    的值,您需要使用来自或来自使用该数据的库的数据。数据以多种不同的语言提供,因此您需要知道时区的标识符以及您感兴趣的语言/区域设置

  • 在.NET中提供时区CLDR数据的这样一个库是-我是其中的作者。使用这个库很简单。从Nuget安装后,只需调用
    TZNames.GetNamesForTimeZone
    并传递IANA时区标识符或Windows时区标识符,以及您感兴趣的语言/区域设置的IETF语言标记。项目自述中的示例将进一步解释


你确定095是中心功能吗?你是在做一个断言。只需提一下-这里有点新鲜(2017年2月5日)。在评论同一区域的日期W.欧洲标准时间(GMT+01:00)阿姆斯特丹、柏林、伯尔尼、罗马、斯德哥尔摩、维也纳显示在我的Win 10
tzutil.exe/l
输出上。尽管如此,感谢您指向
时区名称
请记住,在安装Windows时,该页面列出了默认时区。它没有列出所有可用的时区。