我可以这样比较:
if (TimeZoneInfo.Local.ToString().Contains("Tokyo"))
{
//do something ...
}
但问题是,如果我使用日本本地操作系统,例如,返回字符串使用日文字符而不是"Osaka, Sapporo, Tokyo"。在我的情况下,我检查了字符串是否包含字符串"Tokyo",因此,我的代码将无法在日本操作系统上工作。
对于如何解决这个问题有什么想法吗?谢谢。
我认为你应该能够使用TimeZoneInfo.Id
属性。我不认为它会被本地化,因为它必须匹配一些注册表项。
在Windows XP和Windows Vista中,它对应于注册表HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionTime Zone分支的子键。它可以作为参数传递给FindSystemTimeZoneById方法,以便从注册表检索特定的时区。
如果由于某种原因不能工作,也许BaseUtcOffset
属性对您来说足够了。