Получение определенного часового пояса в .net CF 3.5?

Я бы хотел, чтобы на моем КПК были Мировые часы. Получить местное время - не проблема, а получить время UTC - еще меньше. Но мне кажется, что я не могу определить конкретный часовой пояс? Скажем, мне нужен текущий часовой пояс для Нью-Йорка, не зная, летнее время сейчас или нет (поэтому я не знаю, восточное время сейчас (GMT-5) или восточное летнее время (GMT-4)).

К сожалению, TimeZoneInfo, похоже, не существует в Compact Framework, поэтому мне интересно, действительно ли нет другого способа, кроме ручного жесткого кодирования изменений летнего времени для желаемых часовых поясов на следующие 10 лет, чтобы получить правильное преобразование ...

Изменить: TimeZone существует, но представляет собой абстрактный класс, который мне пришлось бы реализовать самостоятельно, чего я бы хотел избежать, потому что он подвержен ошибкам и требует некоторой магии в датах перехода на летнее время.


person Michael Stum    schedule 17.03.2009    source источник


Ответы (4)


Библиотека OpenNetCF поддерживает часовые пояса.

РЕДАКТИРОВАТЬ: Compact Framework поддерживает TimeZone, но, как указал Майкл, это абстрактный класс!

person Mitch Wheat    schedule 17.03.2009
comment
К сожалению, нет, потому что TimeZone - это абстрактный класс, который требует, чтобы я переопределил его и закодировал свою логику вручную, чего я бы хотел избежать, если Framework уже поддерживает его. - person Michael Stum; 17.03.2009
comment
Посмотрим также на OpenNetCF. - person Michael Stum; 26.03.2009

Как насчет часовых поясов с C # для Windows Mobile

person Gregor    schedule 26.03.2009
comment
Страница исчезла (фактически все содержимое блога) :-( - person Serge Wautier; 06.08.2010

Как насчет использования веб-службы для загрузки актуальной информации о часовом поясе?

http://www.twinsun.com/tz/tz-link.htm

person GeekyMonkey    schedule 26.03.2009

Взгляните на http://www.michaelbrumm.com/simpletimezone.html. Также есть способ получить информацию о часовых поясах из реестра (не только о вашем часовом поясе), см. http://msdn.microsoft.com/en-us/library/ms725481(VS.85).aspx

ОБНОВЛЕНИЕ: возможно, это может помочь: http://social.msdn.microsoft.com/forums/en-US/windowsgeneraldevelopmentissues/thread/feed3c46-18ea-4d5a-b5cf-7d85823fae01/

Я не уверен, есть ли такая же информация на компактном устройстве, но вы можете извлечь часовые пояса с ПК, а затем сохранить их в структуре или файле на компактном устройстве. Но тогда вам, вероятно, придется время от времени обновлять его, поскольку эти вещи имеют тенденцию меняться.

person Igor Brejc    schedule 30.03.2009