Я разместил сайт на сервере, чей часовой пояс отличается от моей местной страны,
как я могу преобразовать время сервера в местное время с учетом перехода на летнее время
DateTimeOffset newTime = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("AppTimeZone"));
, чтобы откровенно принять ответы на другие вопросы SO:
В .NET 3.5 имеется TimeZoneInfo , которая предоставляет множество функций в этой области; 2.0SP1 имеет DateTimeOffset , но это намного более ограничено.
См. Следующие вопросы SO:
Получить DateTime для другого часового пояса, независимо от местного часового пояса
Преобразование даты и времени UTC в другой часовой пояс
Или просто выполните поиск SO , чтобы найти множество ответов, в том числе те, которые учитывают Летнее время .
Вы смотрели на класс TimeZoneInfo.Вы должны иметь возможность преобразовывать время с локального на сервер и обратно, сохраняя при этом DST.
TimeZoneInfo
Существует также реализация часового пояса с открытым исходным кодом Jon Skeet et.Я звоню Нода-Тайм .
Вы можете использовать класс TimeZone для преобразования локального времени сервера в UTC, а затем из UTC в часовой пояс вашего (или конкретного пользователя сайта).