Если действует летнее время, а объект даты сохранен в базе данных (формат UTC), которую вы извлекаете, чтобы отобразить его в представлении (например, представление в asp.net-mvc
).
И вы это сделаете с помощью этого метода:
public static DateTime ConvertToLocalTimeFromUtcTime(DateTime utcDate, string timeZoneId)
{
TimeZoneInfo localZone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId);
DateTime localTime = TimeZoneInfo.ConvertTimeFromUtc(utcDate, localZone);
if (localZone.IsDaylightSavingTime(localTime))
localTime = localTime.AddHours(1); // is this needed !?
return localTime;
}
Вопрос в том, что TimeZoneInfo.ConvertTimeFromUtc()
обрабатывает DST или вам нужно проверить это самостоятельно и либо добавить, либо вычесть X час на объект даты?
Тот же вопрос, когда вы сохраняете объект даты в базе данных, преобразовывая его в формат UTC с помощью ToUniversalTime()
.