4

次の方法で比較できました。

if (TimeZoneInfo.Local.ToString().Contains("Tokyo"))
{
 //do something ...
}

しかし問題は、たとえば日本語のネイティブ OS を使用すると、戻り文字列に「大阪、札幌、東京」ではなく日本語の文字が使用されることです。私の状態では、文字列に「Tokyo」という文字列が含まれているかどうかを確認したため、私のコードは日本語の OS では動作しません。

これを解決する方法についてのアイデアはありますか? ありがとう。

4

1 に答える 1

1

TimeZoneInfo.Idプロパティを使用できるはずだと思います。一部のレジストリ キーと一致する必要があるため、ローカライズされるとは思いません。

Windows XP および Windows Vista では、レジストリの HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zone ブランチのサブキーに対応します。パラメータとして FindSystemTimeZoneById メソッドに渡して、レジストリから特定のタイム ゾーンを取得できます。

何らかの理由でうまくいかない場合は、おそらくそのBaseUtcOffsetプロパティで十分です。

于 2013-04-03T05:00:10.677 に答える