1

给定以下示例:

DateTime result = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "Atlantic Standard Time");

既然Atlantic Standard Time是字符串,这安全吗?AKA,如果我要在德国操作系统上运行相同的代码,代码会失败吗?如果是这样,我应该如何正确处理这样的时区?

4

1 回答 1

1

时区标识符(例如通过对象的Id属性获得TimeZoneInfo)未本地化。它们与在以下位置找到的注册表项名称匹配:

 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones

它们始终是英文的,不应翻译。所以是的,它是安全的。

另一方面,DisplayNameStandardName属性DaylightName本地化的。他们使用操作系统本身的本地化,忽略您可能对应用程序CurrentCultureCurrentUICulture应用程序所做的任何更改。

于 2013-10-18T18:01:11.090 回答