2013-10-18 30 views
1

考虑下面的例子:是否需要对TimeZone.ConvertTimeBySystemTimeZoneId进行本地化?

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

由于Atlantic Standard Time是一个字符串,这是安全的?也就是说,如果我要在德语操作系统上运行相同的代码,代码是否会失败?如果是这样,我该如何妥善处理这样的时区?

回答

1

时区标识符(例如对象的Id属性获取)未被本地化。它们匹配在找到注册表项名称:

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

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

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

相关问题