TimeZone.ConvertTimeBySystemTimeZoneId是否需要本地化?

时间:2013-10-18 16:48:05

标签: datetime localization timezone

给出以下示例:

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

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

1 个答案:

答案 0 :(得分:1)

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

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

他们总是用英语,不应该被翻译。是的,这是安全的。

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