Есть ли в любом случае, я могу преобразовать часовой пояс «Австралия/Мельбурн» в какой -то объект библиотеки базового класса .NET?

StackOverflow https://stackoverflow.com/questions/661848

  •  20-08-2019
  •  | 
  •  

Вопрос

У меня есть некоторые данные с сторонней стороны, которая включает в себя некоторые string Language Данные о свойствах. Некоторые примеры полученных данных выглядят как:

"Австралия/Мельбурн"

Когда я исследовал, на чем основывался тип данных о недвижимости, это Информация о зоне (база данных TZ / база данных OLSON). Анкет Что это за хрень? Я гуглил, и вот информация ....

Похоже, он используется многими крупными платформами ... но не .net.

Итак, прежде чем заново изобрести колесо (или, больше, обновите код с этого сайта Codeplex, чтобы встроить список DB в DLL), существует ли это в библиотеке базовых классов .NET?

Это было полезно?

Решение

Это информация о зоне (база данных TZ / база данных OLSON). Что это за хрень?

Это портативный, в значительной степени стандартный способ представления часовых поясов. Жаль, что .NET не поддерживает его должным образом, ИМО.

Вы используете .net 3.5? Если так, то TimeZoneInfo Класс - лучшая поддержка, которую у нас есть, но преобразование из имени Олсона в имя Windows может быть сложной. В идеале вы хотите преобразование от Olson Id в идентификатор, который использует Windows ... Я не знаю, что есть один доступный.

РЕДАКТИРОВАТЬ: после небольшого копания, пара ссылок:

Я не знаю, как часто они обновляются, но они вполне могут быть вашим лучшим выбором.

Другие советы

На кодовом проекте есть отличная библиотека .NET, которая делает именно то, что вам нужно:

http://www.codeproject.com/kb/locale/zoneinfo_dotnet_api.aspx

http://zoneinfo.codeplex.com/

Я использую это в нескольких проектах, которые разговаривают с Google API, поскольку все их часовые пояса находятся в формате базы данных ZoneInfo/Olsen.

Я также написал сообщение в блоге о его настройке: http://www.diaryofaninja.com/blog/2011/05/27/how-to-use-zoneinfotz-time-zones-in-net-applications

Преобразовать его в GMT? Поиск +x HRS или -x HRS, а затем вычтите смещение с даты/времени, которое вы сохранили. например. В вашем примере вычитается 10, как Мельбурн +10 GMT ??

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top