Как определить, указана ли указанная дата в летнем времени для данного часового пояса в .NET 2.0? - PullRequest
3 голосов
/ 05 сентября 2008

Я нахожусь на .NET 2.0, работаю в среде Medium Trust (поэтому TimeZoneInfo и Реестр не допускаются). Я спрашиваю пользователя о двух датах и ​​часовом поясе, и мне очень хотелось бы иметь возможность автоматически определять, нужно ли мне настраивать часовой пояс для перехода на летнее время.

Это, вероятно, даже недопустимый сценарий, если у меня нет очень надежной поддержки, такой как TimeZoneInfo , чтобы различать все различные разновидности часовых поясов в первом место.

Ответы [ 5 ]

2 голосов
/ 01 октября 2008

Отличная библиотека часовых поясов здесь: TZ4Net

2 голосов
/ 01 октября 2008

База данных TZ является общедоступной базой данных правил часовых поясов, которая очень хорошо поддерживается. Существует также скомпилированный формат для данных, которые они предоставляют, и есть много библиотек, доступных для чтения скомпилированных данных, как этот: ZoneInfo (база данных tz / база данных Олсона) .NET API

2 голосов
/ 05 сентября 2008

В .NET 2.0 вы должны написать это самостоятельно. Он включает в себя исследование законов перехода на летнее время в различных регионах и встраивание их в ваши собственные структуры данных. Проблема несколько упрощается, если вы заботитесь только о подмножестве часовых поясов, например, только в США, но если вам нужны все глобальные часовые пояса, у вас много работы, а затем код должен обновляться каждый несколько лет, когда законы меняются. Даже для новых объектов часовых поясов в последней версии .NET требуются обновления Windows для обеспечения их корректности при изменении законов.

Смотрите здесь , здесь и здесь для получения дополнительной информации.

0 голосов
/ 05 сентября 2008

@ Доменик , я подумал, но я бы предпочел остаться легальным, и я уверен, что информацию в любом случае нужно будет встроить в структуру или взять из реестра в какой-то хитрый способ, не требующий разрешений ...

0 голосов
/ 05 сентября 2008

Ну, так как TimeZoneInfo исключен, вы, вероятно, не найдете решения в самой структуре (но не указывайте меня на этом).

В каком случае вы рассматривали возможность отражения класса TimeZoneInfo и использования того, что вы там нашли?

...