我可以通过以下方式进行比较:
if (TimeZoneInfo.Local.ToString().Contains("Tokyo"))
{
//do something ...
}
但问题是,如果我使用日本本地操作系统,例如,返回字符串使用日文字符而不是“大阪,札幌,东京”。在我的情况下,我检查了字符串是否包含字符串“Tokyo”,因此,我的代码将无法在日语操作系统上运行。
关于如何解决这个问题的任何想法?谢谢。
我可以通过以下方式进行比较:
if (TimeZoneInfo.Local.ToString().Contains("Tokyo"))
{
//do something ...
}
但问题是,如果我使用日本本地操作系统,例如,返回字符串使用日文字符而不是“大阪,札幌,东京”。在我的情况下,我检查了字符串是否包含字符串“Tokyo”,因此,我的代码将无法在日语操作系统上运行。
关于如何解决这个问题的任何想法?谢谢。
我认为您应该可以使用该TimeZoneInfo.Id
属性。我不认为它会被本地化,因为它必须匹配一些注册表项。
在 Windows XP 和 Windows Vista 中,它对应于注册表的 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zone 分支的子项。它可以作为参数传递给 FindSystemTimeZoneById 方法,以从注册表中检索特定时区。
如果由于某种原因不起作用,也许该BaseUtcOffset
属性对您来说就足够了。