Почему это дает мне 2 разных набора часовых поясов? - PullRequest
2 голосов
/ 27 мая 2010

Редактировать

Я считаю, что это проблема, поскольку я использую Windows 7, а мой сервер - Windows 2008. Я думаю, что Windows 2008 по-прежнему использует GMT. Так, как я мог обойти эту проблему. Как я хочу иметь дело в UTC, но я хочу, чтобы выбранный по умолчанию элемент был «Всемирное координированное время», чего нет в списке gmt, но в списке UTC.

Так что я не уверен, что делать. (Я не хост с общим доступом, поэтому, если вы сможете изменить его на компьютере с Windows 2008, это не сильно мне поможет).

Привет

У меня есть эта строка, чтобы получить все часовые пояса

 Dictionary<string, TimeZoneInfo> storeZoneName = TimeZoneInfo.GetSystemTimeZones().ToDictionary(z => z.DisplayName);

Теперь, когда я загружаю, я пробую это на своей локальной машине, я получаю это

(UTC-12:00) International Date Line West
(UTC-11:00) Coordinated Universal Time-11
(UTC-11:00) Samoa
(UTC-10:00) Hawaii
(UTC-09:00) Alaska
(UTC-08:00) Baja California
(UTC-08:00) Pacific Time (US & Canada)
(UTC-07:00) Arizona
(UTC-07:00) Chihuahua, La Paz, Mazatlan
(UTC-07:00) Mountain Time (US & Canada)
(UTC-06:00) Central America
(UTC-06:00) Central Time (US & Canada)
(UTC-06:00) Guadalajara, Mexico City, Monterrey
(UTC-06:00) Saskatchewan
(UTC-05:00) Bogota, Lima, Quito
(UTC-05:00) Eastern Time (US & Canada)
(UTC-05:00) Indiana (East)
(UTC-04:30) Caracas
(UTC-04:00) Asuncion
(UTC-04:00) Atlantic Time (Canada)
(UTC-04:00) Cuiaba
(UTC-04:00) Georgetown, La Paz, Manaus, San Juan
(UTC-04:00) Santiago
(UTC-03:30) Newfoundland
(UTC-03:00) Brasilia
(UTC-03:00) Buenos Aires
(UTC-03:00) Cayenne, Fortaleza
(UTC-03:00) Greenland
(UTC-03:00) Montevideo
(UTC-02:00) Coordinated Universal Time-02
(UTC-02:00) Mid-Atlantic
(UTC-01:00) Azores
(UTC-01:00) Cape Verde Is.
(UTC) Casablanca
(UTC) Coordinated Universal Time
(UTC) Dublin, Edinburgh, Lisbon, London
(UTC) Monrovia, Reykjavik
(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague
(UTC+01:00) Brussels, Copenhagen, Madrid, Paris
(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb
(UTC+01:00) West Central Africa
(UTC+02:00) Amman
(UTC+02:00) Athens, Bucharest, Istanbul
(UTC+02:00) Beirut
(UTC+02:00) Cairo
(UTC+02:00) Harare, Pretoria
(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius
(UTC+02:00) Jerusalem
(UTC+02:00) Minsk
(UTC+02:00) Windhoek
(UTC+03:00) Baghdad
(UTC+03:00) Kuwait, Riyadh
(UTC+03:00) Moscow, St. Petersburg, Volgograd
(UTC+03:00) Nairobi
(UTC+03:30) Tehran
(UTC+04:00) Abu Dhabi, Muscat
(UTC+04:00) Baku
(UTC+04:00) Port Louis
(UTC+04:00) Tbilisi
(UTC+04:00) Yerevan
(UTC+04:30) Kabul
(UTC+05:00) Ekaterinburg
(UTC+05:00) Islamabad, Karachi
(UTC+05:00) Tashkent
(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi
(UTC+05:30) Sri Jayawardenepura
(UTC+05:45) Kathmandu
(UTC+06:00) Astana
(UTC+06:00) Dhaka
(UTC+06:00) Novosibirsk
(UTC+06:30) Yangon (Rangoon)
(UTC+07:00) Bangkok, Hanoi, Jakarta
(UTC+07:00) Krasnoyarsk
(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi
(UTC+08:00) Irkutsk
(UTC+08:00) Kuala Lumpur, Singapore
(UTC+08:00) Perth
(UTC+08:00) Taipei
(UTC+08:00) Ulaanbaatar
(UTC+09:00) Osaka, Sapporo, Tokyo
(UTC+09:00) Seoul
(UTC+09:00) Yakutsk
(UTC+09:30) Adelaide
(UTC+09:30) Darwin
(UTC+10:00) Brisbane
(UTC+10:00) Canberra, Melbourne, Sydney
(UTC+10:00) Guam, Port Moresby
(UTC+10:00) Hobart
(UTC+10:00) Vladivostok
(UTC+11:00) Magadan, Solomon Is., New Caledonia
(UTC+12:00) Auckland, Wellington
(UTC+12:00) Coordinated Universal Time+12
(UTC+12:00) Fiji
(UTC+12:00) Petropavlovsk-Kamchatsky
(UTC+13:00) Nuku'alofa

Когда я запускаю его на другом локальном компьютере или на моем сервере, у меня есть это.

<option value="(GMT) Casablanca">(GMT) Casablanca</option>
<option value="(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London">(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London</option>
<option value="(GMT) Monrovia, Reykjavik">(GMT) Monrovia, Reykjavik</option>
<option value="(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna">(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna</option>
<option value="(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague">(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague</option>
<option value="(GMT+01:00) Brussels, Copenhagen, Madrid, Paris">(GMT+01:00) Brussels, Copenhagen, Madrid, Paris</option>
<option value="(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb">(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb</option>
<option value="(GMT+01:00) West Central Africa">(GMT+01:00) West Central Africa</option>
<option value="(GMT+02:00) Amman">(GMT+02:00) Amman</option>
<option value="(GMT+02:00) Athens, Bucharest, Istanbul">(GMT+02:00) Athens, Bucharest, Istanbul</option>
<option value="(GMT+02:00) Beirut">(GMT+02:00) Beirut</option>
<option value="(GMT+02:00) Cairo">(GMT+02:00) Cairo</option>
<option value="(GMT+02:00) Harare, Pretoria">(GMT+02:00) Harare, Pretoria</option>
<option value="(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius">(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius</option>
<option value="(GMT+02:00) Jerusalem">(GMT+02:00) Jerusalem</option>
<option value="(GMT+02:00) Minsk">(GMT+02:00) Minsk</option>
<option value="(GMT+02:00) Windhoek">(GMT+02:00) Windhoek</option>
<option value="(GMT+03:00) Baghdad">(GMT+03:00) Baghdad</option>
<option value="(GMT+03:00) Kuwait, Riyadh">(GMT+03:00) Kuwait, Riyadh</option>
<option value="(GMT+03:00) Moscow, St. Petersburg, Volgograd">(GMT+03:00) Moscow, St. Petersburg, Volgograd</option>
<option value="(GMT+03:00) Nairobi">(GMT+03:00) Nairobi</option>
<option value="(GMT+03:00) Tbilisi">(GMT+03:00) Tbilisi</option>
<option value="(GMT+03:30) Tehran">(GMT+03:30) Tehran</option>
<option value="(GMT+04:00) Abu Dhabi, Muscat">(GMT+04:00) Abu Dhabi, Muscat</option>
<option value="(GMT+04:00) Baku">(GMT+04:00) Baku</option>
<option value="(GMT+04:00) Port Louis">(GMT+04:00) Port Louis</option>
<option value="(GMT+04:00) Yerevan">(GMT+04:00) Yerevan</option>
<option value="(GMT+04:30) Kabul">(GMT+04:30) Kabul</option>
<option value="(GMT+05:00) Ekaterinburg">(GMT+05:00) Ekaterinburg</option>
<option value="(GMT+05:00) Islamabad, Karachi">(GMT+05:00) Islamabad, Karachi</option>
<option value="(GMT+05:00) Tashkent">(GMT+05:00) Tashkent</option>
<option value="(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi">(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi</option>
<option value="(GMT+05:30) Sri Jayawardenepura">(GMT+05:30) Sri Jayawardenepura</option>
<option value="(GMT+05:45) Kathmandu">(GMT+05:45) Kathmandu</option>
<option value="(GMT+06:00) Almaty, Novosibirsk">(GMT+06:00) Almaty, Novosibirsk</option>
<option value="(GMT+06:00) Astana, Dhaka">(GMT+06:00) Astana, Dhaka</option>
<option value="(GMT+06:30) Yangon (Rangoon)">(GMT+06:30) Yangon (Rangoon)</option>
<option value="(GMT+07:00) Bangkok, Hanoi, Jakarta">(GMT+07:00) Bangkok, Hanoi, Jakarta</option>
<option value="(GMT+07:00) Krasnoyarsk">(GMT+07:00) Krasnoyarsk</option>
<option value="(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi">(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi</option>
<option value="(GMT+08:00) Irkutsk, Ulaan Bataar">(GMT+08:00) Irkutsk, Ulaan Bataar</option>
<option value="(GMT+08:00) Kuala Lumpur, Singapore">(GMT+08:00) Kuala Lumpur, Singapore</option>
<option value="(GMT+08:00) Perth">(GMT+08:00) Perth</option>
<option value="(GMT+08:00) Taipei">(GMT+08:00) Taipei</option>
<option value="(GMT+09:00) Osaka, Sapporo, Tokyo">(GMT+09:00) Osaka, Sapporo, Tokyo</option>
<option value="(GMT+09:00) Seoul">(GMT+09:00) Seoul</option>
<option value="(GMT+09:00) Yakutsk">(GMT+09:00) Yakutsk</option>
<option value="(GMT+09:30) Adelaide">(GMT+09:30) Adelaide</option>
<option value="(GMT+09:30) Darwin">(GMT+09:30) Darwin</option>
<option value="(GMT+10:00) Brisbane">(GMT+10:00) Brisbane</option>
<option value="(GMT+10:00) Canberra, Melbourne, Sydney">(GMT+10:00) Canberra, Melbourne, Sydney</option>
<option value="(GMT+10:00) Guam, Port Moresby">(GMT+10:00) Guam, Port Moresby</option>
<option value="(GMT+10:00) Hobart">(GMT+10:00) Hobart</option>
<option value="(GMT+10:00) Vladivostok">(GMT+10:00) Vladivostok</option>
<option value="(GMT+11:00) Magadan, Solomon Is., New Caledonia">(GMT+11:00) Magadan, Solomon Is., New Caledonia</option>
<option value="(GMT+12:00) Auckland, Wellington">(GMT+12:00) Auckland, Wellington</option>
<option value="(GMT+12:00) Fiji, Kamchatka, Marshall Is.">(GMT+12:00) Fiji, Kamchatka, Marshall Is.</option>
<option value="(GMT+13:00) Nuku'alofa">(GMT+13:00) Nuku'alofa</option>
<option value="(GMT-01:00) Azores">(GMT-01:00) Azores</option>
<option value="(GMT-01:00) Cape Verde Is.">(GMT-01:00) Cape Verde Is.</option>
<option value="(GMT-02:00) Mid-Atlantic">(GMT-02:00) Mid-Atlantic</option>
<option value="(GMT-03:00) Brasilia">(GMT-03:00) Brasilia</option>
<option value="(GMT-03:00) Buenos Aires">(GMT-03:00) Buenos Aires</option>
<option value="(GMT-03:00) Georgetown">(GMT-03:00) Georgetown</option>
<option value="(GMT-03:00) Greenland">(GMT-03:00) Greenland</option>
<option value="(GMT-03:00) Montevideo">(GMT-03:00) Montevideo</option>
<option value="(GMT-03:30) Newfoundland">(GMT-03:30) Newfoundland</option>
<option value="(GMT-04:00) Atlantic Time (Canada)">(GMT-04:00) Atlantic Time (Canada)</option>
<option value="(GMT-04:00) La Paz">(GMT-04:00) La Paz</option>
<option value="(GMT-04:00) Manaus">(GMT-04:00) Manaus</option>
<option value="(GMT-04:00) Santiago">(GMT-04:00) Santiago</option>
<option value="(GMT-04:30) Caracas">(GMT-04:30) Caracas</option>
<option value="(GMT-05:00) Bogota, Lima, Quito, Rio Branco">(GMT-05:00) Bogota, Lima, Quito, Rio Branco</option>
<option value="(GMT-05:00) Eastern Time (US &amp; Canada)">(GMT-05:00) Eastern Time (US &amp; Canada)</option>
<option value="(GMT-05:00) Indiana (East)">(GMT-05:00) Indiana (East)</option>
<option value="(GMT-06:00) Central America">(GMT-06:00) Central America</option>
<option value="(GMT-06:00) Central Time (US &amp; Canada)">(GMT-06:00) Central Time (US &amp; Canada)</option>
<option value="(GMT-06:00) Guadalajara, Mexico City, Monterrey">(GMT-06:00) Guadalajara, Mexico City, Monterrey</option>
<option value="(GMT-06:00) Saskatchewan">(GMT-06:00) Saskatchewan</option>
<option value="(GMT-07:00) Arizona">(GMT-07:00) Arizona</option>
<option value="(GMT-07:00) Chihuahua, La Paz, Mazatlan">(GMT-07:00) Chihuahua, La Paz, Mazatlan</option>
<option value="(GMT-07:00) Mountain Time (US &amp; Canada)">(GMT-07:00) Mountain Time (US &amp; Canada)</option>
<option value="(GMT-08:00) Pacific Time (US &amp; Canada)">(GMT-08:00) Pacific Time (US &amp; Canada)</option>
<option value="(GMT-08:00) Tijuana, Baja California">(GMT-08:00) Tijuana, Baja California</option>
<option value="(GMT-09:00) Alaska">(GMT-09:00) Alaska</option>
<option value="(GMT-10:00) Hawaii">(GMT-10:00) Hawaii</option>
<option value="(GMT-11:00) Midway Island, Samoa">(GMT-11:00) Midway Island, Samoa</option>
<option value="(GMT-12:00) International Date Line West">(GMT-12:00) International Date Line West</option>

Они разные. Та же строка кода, но одна - GMT, а другая - UTC. Как я могу заставить его всегда быть одинаковым?

Также я хочу выбрать по умолчанию «UTC», но я не уверен, что разница между этими значениями

(UTC-11:00) Coordinated Universal Time-11

and this

  (UTC-02:00) Coordinated Universal Time-02

Ответы [ 2 ]

3 голосов
/ 18 ноября 2010

Проблема в том, что вы используете DisplayName часовых поясов, это просто метка и не должна использоваться для идентификации часового пояса! Поскольку TimeZoneInfo.GetSystemTimeZones() перечисляет часовые пояса в локальной системе , значения DisplayName различаются в зависимости от того, на какой ОС вы запускаете программу.

Системы, более старые, чем Windows Vista / 2008 Server, отображали часовые пояса как GMT + XX: XX, но новые системы используют стиль UTC + XX: XX. Но это не единственная разница ; в некоторых часовых поясах также есть различия в перечисленных городах, и перечисленные названия городов локализованы !

E. г. идентификатор часового пояса "Стандартное арабское время" отображается как:
(GMT+03:00) Kuwait, Er Riad в немецкой системе XP / 2003, но это
(UTC+03:00) Kuwait, Riyadh в английской системе Win 7.

А "Центральное стандартное время" указано как:
(GMT-06:00) Chicago, Dallas, Kansas City, Winnipeg - GER XP / 2003
(UTC-06:00) Central Time (US & Canada) - ENG Win 7

Просто обмен по Гринвичу и UTC может работать в , в некоторых случаях , но это не всегда будет работать и может привести к неожиданным ошибкам ! Так что не делай этого!

Вместо этого следует использовать Id свойство , чтобы идентифицировать часовой пояс и использовать DisplayName только для отображения (в качестве имени предлагает).

Id представляет ключ часового пояса, как будто он хранится в реестре на HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones и будет работать в разных версиях ОС и -языках.

1 голос
/ 27 мая 2010

GMT и UTC - это одно и то же. Я полагаю, одна система настроена на английский (США), а другая - на английский (Великобритания) (или, возможно, какую-то другую комбинацию).

(UTC-11: 00) Всемирное координированное время-11

Это означает «11 часов после UTC».

(UTC-02: 00) Всемирное координированное время-02

Это означает, что "2 часа отстают от UTC"

То есть, если UTC - 4:32 вечера, тогда UTC-02: 00 будет 14:32, а UTC-11: 00 будет 5:32.

...