Как преобразовать время UTC в Время в любом другом часовом поясе в C # - PullRequest
9 голосов
/ 11 октября 2008

Я работаю в C # .net - .Net FX 2.0, которая не поддерживает преобразование между разными часовыми поясами. Я написал планировщик на основе UTC, но он дает ошибки в 1 час в периоды DTS для Лондона. Мне нужно какое-то решение, чтобы я мог получить правильное время в любом часовом поясе относительно UTC с правильными настройками летнего времени.

1 Ответ

10 голосов
/ 11 октября 2008

Переход на .NET 3.5 абсолютно невозможен? Это сделало бы вашу жизнь намного проще. В противном случае вы застряли с обычными классами TimeZone и DaylightSavings, а также с необходимостью извлечения известных часовых поясов с помощью P / Invoke.

У Уильяма Стейси есть блог с некоторым кодом для этого - но я не пробовал, поэтому не могу ручаться за его точность. (По моему опыту, он обычно довольно хорош :) Нет сомнений в том, что подобные фрагменты кода существуют, если он вам не помогает.

Я считаю, что используемый им API не имеет доступа к историческим данным, кстати. Другими словами, он будет предполагать, что DST всегда активируется в первое воскресенье октября (или каким бы то ни было правилом) вместо того, чтобы знать, что правило изменилось со временем. TimeZoneInfo в .NET 3.5 поддерживает исторические данные там, где это делает ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...