web-dev-qa-db-ja.com

TimeZoneInfo.FindSystemTimeZoneById(String)に渡す値は何ですか?

TimeZoneInfo.FindSystemTimeZoneById(String) メソッドを使用したいのですが、入力として使用する値がわかりませんか?

idに必要なFindSystemTimeZoneByIdの値のリストはどこで入手できますか?

77
001

TimeZoneInfoクラスの静的リストからそれらを取得できます

var infos = TimeZoneInfo.GetSystemTimeZones();
foreach (var info in infos)
{
    Console.WriteLine(info.Id);
}

例:

  var tzInfo = TimeZoneInfo.FindSystemTimeZoneById("New Zealand Standard Time");

または、DJ KRAZEが提案したようなタイムゾーンIDのリストが必要な場合

  var timeZoneIds = TimeZoneInfo.GetSystemTimeZones().Select(t => t.Id);
33
sa_ddam213

利用可能なタイムゾーンは次のとおりです。

Console.WriteLine(string.Join("\n",TimeZoneInfo.GetSystemTimeZones().Select(x=>x.Id)));

結果:

Dateline Standard Time
UTC-11
Aleutian Standard Time
Hawaiian Standard Time
Marquesas Standard Time
Alaskan Standard Time
UTC-09
Pacific Standard Time (Mexico)
UTC-08
Pacific Standard Time
US Mountain Standard Time
Mountain Standard Time (Mexico)
Mountain Standard Time
Central America Standard Time
Central Standard Time
Easter Island Standard Time
Central Standard Time (Mexico)
Canada Central Standard Time
SA Pacific Standard Time
Eastern Standard Time (Mexico)
Eastern Standard Time
Haiti Standard Time
Cuba Standard Time
US Eastern Standard Time
Paraguay Standard Time
Atlantic Standard Time
Venezuela Standard Time
Central Brazilian Standard Time
SA Western Standard Time
Pacific SA Standard Time
Turks And Caicos Standard Time
Newfoundland Standard Time
Tocantins Standard Time
E. South America Standard Time
SA Eastern Standard Time
Argentina Standard Time
Greenland Standard Time
Montevideo Standard Time
Saint Pierre Standard Time
Bahia Standard Time
UTC-02
Mid-Atlantic Standard Time
Azores Standard Time
Cape Verde Standard Time
UTC
Morocco Standard Time
GMT Standard Time
Greenwich Standard Time
W. Europe Standard Time
Central Europe Standard Time
Romance Standard Time
Central European Standard Time
W. Central Africa Standard Time
Namibia Standard Time
Jordan Standard Time
GTB Standard Time
Middle East Standard Time
Egypt Standard Time
E. Europe Standard Time
Syria Standard Time
West Bank Standard Time
South Africa Standard Time
FLE Standard Time
Israel Standard Time
Kaliningrad Standard Time
Libya Standard Time
Arabic Standard Time
Turkey Standard Time
Arab Standard Time
Belarus Standard Time
Russian Standard Time
E. Africa Standard Time
Iran Standard Time
Arabian Standard Time
Astrakhan Standard Time
Azerbaijan Standard Time
Russia Time Zone 3
Mauritius Standard Time
Georgian Standard Time
Caucasus Standard Time
Afghanistan Standard Time
West Asia Standard Time
Ekaterinburg Standard Time
Pakistan Standard Time
India Standard Time
Sri Lanka Standard Time
Nepal Standard Time
Central Asia Standard Time
Bangladesh Standard Time
Omsk Standard Time
Myanmar Standard Time
SE Asia Standard Time
Altai Standard Time
W. Mongolia Standard Time
North Asia Standard Time
N. Central Asia Standard Time
Tomsk Standard Time
China Standard Time
North Asia East Standard Time
Singapore Standard Time
W. Australia Standard Time
Taipei Standard Time
Ulaanbaatar Standard Time
North Korea Standard Time
Aus Central W. Standard Time
Transbaikal Standard Time
Tokyo Standard Time
Korea Standard Time
Yakutsk Standard Time
Cen. Australia Standard Time
AUS Central Standard Time
E. Australia Standard Time
AUS Eastern Standard Time
West Pacific Standard Time
Tasmania Standard Time
Vladivostok Standard Time
Lord Howe Standard Time
Bougainville Standard Time
Russia Time Zone 10
Magadan Standard Time
Norfolk Standard Time
Sakhalin Standard Time
Central Pacific Standard Time
Russia Time Zone 11
New Zealand Standard Time
UTC+12
Fiji Standard Time
Kamchatka Standard Time
Chatham Islands Standard Time
Tonga Standard Time
Samoa Standard Time
Line Islands Standard Time
12
Angelo Ortega

TimeZoneInfo.GetSystemTimeZones() メソッドと呼ばれるTimeZoneInfoの静的メソッドを見てください。

これにより、レジストリからオペレーティングシステム上のすべてのTimeZoneInfoのリストが返されます。それらはすべて以下に保存されます:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones

例は、「ダブリン、エジンバラ、リスボン、ロンドン」タイムゾーンの「GMT標準時」です。

8
DaveShaw

完全なリストは、MSDN Webサイトにあります。

タイムゾーンID(コンパクト2013)

2
Sam Jones

または、次のようにTimeZoneInfo.Local.Idを渡すことができます。

TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(TimeZoneInfo.Local.Id);
DateTime localDateTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tzi);
1
Pabinator

他の人が言ったように、TimeZoneInfo.GetSystemTimeZones()を繰り返して使用したい文字列を見つけることでリストを見つけることができます。ただし、時差に関する情報のみ(GMT + 9やGMT-10など)があり、タイムゾーンの反復後にタイムゾーンが見つからない場合は、次のURLを参照して、必要なタイムゾーンを確認してください https://msdn.Microsoft.com/en-US/library/ms912391(v=winembedded.11).aspx

1
dumdum

以下のコードを使用できます

using System;

namespace TimeZoneIds
{
    class Program
    {
        static void Main(string[] args)
        {
            foreach (TimeZoneInfo z in TimeZoneInfo.GetSystemTimeZones())
                Console.WriteLine(z.Id);
        }
    }
}
0

これらのリストを含む最新のMicrosoftドキュメントは、 https://support.Microsoft.com/en-gb/help/973627/Microsoft-time-zone-index-values にあります。

現在、タイムゾーンID文字列は次のとおりです(各タイムゾーンIDの16進インデックスを表示する実際の時間差を確認するには、上記のリンクをクリックしてください)。

サモア標準時

アラスカ標準時

山地標準時

米国山地標準時

カナダ中部標準時

中央アメリカ標準時

米国東部標準時

大西洋標準時

太平洋標準時

E.南アメリカ標準時

グリーンランド標準時

アゾレス標準時

GMT標準時

中央ヨーロッパ標準時

ロマンス標準時

W.中央アフリカ標準時

エジプト標準時

GTB標準時

南アフリカ標準時

アラブ標準時

アラビア標準時

アラビア標準時

アフガニスタンの暫定イスラム国家標準時

西アジア標準時

ネパール標準時

スリランカ標準時

ミャンマー標準時

北アジア標準時

シンガポール標準時

西オーストラリア標準時

韓国標準時

ヤクーツク標準時

セン。オーストラリア標準時

E.オーストラリア標準時

ウラジオストック標準時

中部太平洋標準時

ニュージーランド標準時

アゼルバイジャン標準時

ヨルダン標準時

山岳部標準時(メキシコ)

ナミビア標準時

中央ブラジル標準時

アルメニア標準時

アルゼンチン標準時

パキスタン標準時

UTC

カムチャッカ標準時

0
d219