Значения индекса часового пояса - PullRequest
0 голосов
/ 01 ноября 2019

Мне нужно получить список часовых поясов. Для этого я использовал это

var timezoneList = TimeZoneInfo.GetSystemTimeZones();

Я нашел значения индекса для часового пояса по этой ссылке https://support.microsoft.com/en-in/help/973627/microsoft-time-zone-index-values

Как получить значения этого индекса?

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

Это статический список, который устарел и устарел. Я постараюсь удалить его.

В настоящее время Microsoft не публикует полный список часовых поясов на веб-странице. Любой такой список будет снимком во времени, и его нужно будет обновлять каждый раз, когда создается новый часовой пояс Windows.

Чтобы получить текущий список часовых поясов, вы можете использовать любое из следующего:

  • TimeZoneInfo.GetSystemTimeZones в .NET
  • EnumDynamicTimeZoneInformation в Windows API
  • tzutil.exe /L в командной строке Windows
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones в реестре Windows

Что касается «значения индекса» - эти значения были созданы для исходной линейки продуктов Windows Embedded. Они бесполезны в современных приложениях и не поддерживаются никоим образом. Вместо этого вы должны использовать строку Id, как показано в ответе Оливера .

0 голосов
/ 01 ноября 2019

Вы можете создать массив самостоятельно, как предложено @ KlausGütter с Dictionary, сопоставляя ожидаемые идентификаторы с TimeZoneInfo.Id.

Таким образом, вы можете создать Dictionary<string, long> и копировать / вставлять значения строк, соответствующиешестнадцатеричные значения.

Пример:

Dictionary<string, long> TimeZoneMapper = new Dictionary<string, long>()
{
  { "Dateline Standard Time", 0 },
  // ...
  { "Kamchatka Standard Time", 0x80000052 }
};

Использование:

long id = TimeZoneMapper[timeZoneInfo.Id];

Вот свойства, которые имеют TimeZoneInfo:

  • Id - уникальное английское короткое имя.
  • DisplayName - уникальное локализованное полное имя.

Пример:

foreach ( var zone in TimeZoneInfo.GetSystemTimeZones() )
  Console.WriteLine($"{zone.Id} => {zone.DisplayName}");

Вывод:

Dateline Standard Time => (UTC-12:00) Ligne de date internationale (Ouest)
UTC-11 => (UTC-11:00) Temps universel coordonné-11
Hawaiian Standard Time => (UTC-10:00) Hawaii
Aleutian Standard Time => (UTC-10:00) Îles Aléoutiennes
Marquesas Standard Time => (UTC-09:30) Îles Marquises
Alaskan Standard Time => (UTC-09:00) Alaska
UTC-09 => (UTC-09:00) Temps universel coordonné-09
Pacific Standard Time (Mexico) => (UTC-08:00) Basse Californie
Pacific Standard Time => (UTC-08:00) Pacifique (É.-U. et Canada)
UTC-08 => (UTC-08:00) Temps universel coordonné-08
US Mountain Standard Time => (UTC-07:00) Arizona
Mountain Standard Time (Mexico) => (UTC-07:00) Chihuahua, La Paz, Mazatlan
Mountain Standard Time => (UTC-07:00) Montagnes Rocheuses (É.-U. et Canada)
Central America Standard Time => (UTC-06:00) Amérique centrale
Central Standard Time => (UTC-06:00) Centre (É.-U. et Canada)
Central Standard Time (Mexico) => (UTC-06:00) Guadalajara, Mexico, Monterrey
Canada Central Standard Time => (UTC-06:00) Saskatchewan
Easter Island Standard Time => (UTC-06:00) Île de Pâques
SA Pacific Standard Time => (UTC-05:00) Bogota, Lima, Quito, Rio Branco
Eastern Standard Time (Mexico) => (UTC-05:00) Chetumal
Eastern Standard Time => (UTC-05:00) Est (É.-U. et Canada)
Cuba Standard Time => (UTC-05:00) Havane (La)
Haiti Standard Time => (UTC-05:00) Haïti
US Eastern Standard Time => (UTC-05:00) Indiana (Est)
Turks And Caicos Standard Time => (UTC-05:00) Îles Turques-et-Caïques
Paraguay Standard Time => (UTC-04:00) Asunción
Venezuela Standard Time => (UTC-04:00) Caracas
Central Brazilian Standard Time => (UTC-04:00) Cuiaba
SA Western Standard Time => (UTC-04:00) Georgetown, La Paz, Manaus, San Juan
Atlantic Standard Time => (UTC-04:00) Heure Atlantique (Canada)
Pacific SA Standard Time => (UTC-04:00) Santiago
Newfoundland Standard Time => (UTC-03:30) Terre-Neuve-et-Labrador
Tocantins Standard Time => (UTC-03:00) Araguaína
E. South America Standard Time => (UTC-03:00) Brasilia
Argentina Standard Time => (UTC-03:00) Buenos Aires
SA Eastern Standard Time => (UTC-03:00) Cayenne, Fortaleza
Greenland Standard Time => (UTC-03:00) Groenland
Montevideo Standard Time => (UTC-03:00) Montevideo
Magallanes Standard Time => (UTC-03:00) Punta Arenas
Saint Pierre Standard Time => (UTC-03:00) Saint-Pierre-et-Miquelon
Bahia Standard Time => (UTC-03:00) Salvador
Mid-Atlantic Standard Time => (UTC-02:00) Centre-Atlantique - Ancien
UTC-02 => (UTC-02:00) Temps universel coordonné-02
Azores Standard Time => (UTC-01:00) Les Açores
Cape Verde Standard Time => (UTC-01:00) Îles du Cap-Vert
UTC => (UTC) Temps universel coordonné
GMT Standard Time => (UTC+00:00) Dublin, Édimbourg, Lisbonne, Londres
Greenwich Standard Time => (UTC+00:00) Monrovia, Reykjavik
Sao Tome Standard Time => (UTC+00:00) São Tomé
Morocco Standard Time => (UTC+01:00) Casablanca
W. Central Africa Standard Time => (UTC+01:00) Afrique centrale - Ouest
W. Europe Standard Time => (UTC+01:00) Amsterdam, Berlin, Berne, Rome, Stockholm, Vienne
Central Europe Standard Time => (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prag
Romance Standard Time => (UTC+01:00) Bruxelles, Copenhague, Madrid, Paris
Central European Standard Time => (UTC+01:00) Sarajevo, Skopje, Varsovie, Zagreb
Jordan Standard Time => (UTC+02:00) Amman
GTB Standard Time => (UTC+02:00) Athènes, Bucarest
Middle East Standard Time => (UTC+02:00) Beyrouth
E. Europe Standard Time => (UTC+02:00) Chisinau
Syria Standard Time => (UTC+02:00) Damas
West Bank Standard Time => (UTC+02:00) Gaza, Hébron
South Africa Standard Time => (UTC+02:00) Harare, Pretoria
FLE Standard Time => (UTC+02:00) Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius
Israel Standard Time => (UTC+02:00) Jérusalem
Kaliningrad Standard Time => (UTC+02:00) Kaliningrad
Sudan Standard Time => (UTC+02:00) Khartoum
Egypt Standard Time => (UTC+02:00) Le Caire
Libya Standard Time => (UTC+02:00) Tripoli
Namibia Standard Time => (UTC+02:00) Windhoek
Arabic Standard Time => (UTC+03:00) Bagdad
Turkey Standard Time => (UTC+03:00) Istanbul
Arab Standard Time => (UTC+03:00) Koweït, Riyad
Belarus Standard Time => (UTC+03:00) Minsk
Russian Standard Time => (UTC+03:00) Moscou, Saint-Pétersbourg
E. Africa Standard Time => (UTC+03:00) Nairobi
Iran Standard Time => (UTC+03:30) Téhéran
Arabian Standard Time => (UTC+04:00) Abu Dhabi, Muscat
Astrakhan Standard Time => (UTC+04:00) Astrakhan, Oulianovsk
Azerbaijan Standard Time => (UTC+04:00) Bakou
Caucasus Standard Time => (UTC+04:00) Erevan
Russia Time Zone 3 => (UTC+04:00) Izhevsk, Samara
Mauritius Standard Time => (UTC+04:00) Port Louis
Saratov Standard Time => (UTC+04:00) Saratov
Georgian Standard Time => (UTC+04:00) Tbilissi
Volgograd Standard Time => (UTC+04:00) Volgograd
Afghanistan Standard Time => (UTC+04:30) Kaboul
West Asia Standard Time => (UTC+05:00) Achgabat, Tachkent
Ekaterinburg Standard Time => (UTC+05:00) Iekaterinbourg
Pakistan Standard Time => (UTC+05:00) Islamabad, Karachi
Qyzylorda Standard Time => (UTC+05:00) Kyzylorda
India Standard Time => (UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi
Sri Lanka Standard Time => (UTC+05:30) Sri Jayawardenepura
Nepal Standard Time => (UTC+05:45) Katmandou
Central Asia Standard Time => (UTC+06:00) Astana
Bangladesh Standard Time => (UTC+06:00) Dhaka
Omsk Standard Time => (UTC+06:00) Omsk
Myanmar Standard Time => (UTC+06:30) Rangoon
SE Asia Standard Time => (UTC+07:00) Bangkok, Hanoi, Djakarta
Altai Standard Time => (UTC+07:00) Barnaoul, Gorno-Altaïsk
W. Mongolia Standard Time => (UTC+07:00) Hovd
North Asia Standard Time => (UTC+07:00) Krasnoïarsk
N. Central Asia Standard Time => (UTC+07:00) Novosibirsk
Tomsk Standard Time => (UTC+07:00) Tomsk
China Standard Time => (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi
North Asia East Standard Time => (UTC+08:00) Irkoutsk
Singapore Standard Time => (UTC+08:00) Kuala Lumpur, Singapour
Ulaanbaatar Standard Time => (UTC+08:00) Oulan-Bator
W. Australia Standard Time => (UTC+08:00) Perth
Taipei Standard Time => (UTC+08:00) Taipei
Aus Central W. Standard Time => (UTC+08:45) Eucla
Transbaikal Standard Time => (UTC+09:00) Chita
Yakutsk Standard Time => (UTC+09:00) Iakoutsk
Tokyo Standard Time => (UTC+09:00) Osaka, Sapporo, Tokyo
North Korea Standard Time => (UTC+09:00) Pyongyang
Korea Standard Time => (UTC+09:00) Séoul
Cen. Australia Standard Time => (UTC+09:30) Adélaïde
AUS Central Standard Time => (UTC+09:30) Darwin
E. Australia Standard Time => (UTC+10:00) Brisbane
AUS Eastern Standard Time => (UTC+10:00) Canberra, Melbourne, Sydney
West Pacific Standard Time => (UTC+10:00) Guam, Port Moresby
Tasmania Standard Time => (UTC+10:00) Hobart
Vladivostok Standard Time => (UTC+10:00) Vladivostok
Lord Howe Standard Time => (UTC+10:30) Île Lord Howe
Russia Time Zone 10 => (UTC+11:00) Chokurdakh
Magadan Standard Time => (UTC+11:00) Magadan
Sakhalin Standard Time => (UTC+11:00) Sakhaline
Bougainville Standard Time => (UTC+11:00) Île Bougainville
Norfolk Standard Time => (UTC+11:00) Île Norfolk
Central Pacific Standard Time => (UTC+11:00) Îles Salomon, Nouvelle-Calédonie
Russia Time Zone 11 => (UTC+12:00) Anadyr, Petropavlovsk-Kamtchatski
New Zealand Standard Time => (UTC+12:00) Auckland, Wellington
Fiji Standard Time => (UTC+12:00) Fidji
Kamchatka Standard Time => (UTC+12:00) Petropavlovsk-Kamchatsky - Ancien
UTC+12 => (UTC+12:00) Temps universel coordonné+12
Chatham Islands Standard Time => (UTC+12:45) Îles Chatham
Tonga Standard Time => (UTC+13:00) Nuku'alofa
Samoa Standard Time => (UTC+13:00) Samoa
UTC+13 => (UTC+13:00) Temps universel coordonné+13
Line Islands Standard Time => (UTC+14:00) Kiritimati, Île
...