У меня есть значение UTC DateTime, прибывающее из записи базы данных. У меня также есть зона пользовательского требуемого времени (экземпляр TimeZoneInfo). Как я преобразовываю тот UTC DateTime в зону местного времени пользователя? Кроме того, как я определяю, наблюдает ли зона пользовательского требуемого времени в настоящее время DST? Я использую.NET 3.5.
Спасибо, Mark
Взгляните на структуру DateTimeOffset :
// user-specified time zone
TimeZoneInfo southPole =
TimeZoneInfo.FindSystemTimeZoneById("Antarctica/South Pole Standard Time");
// an UTC DateTime
DateTime utcTime = new DateTime(2007, 07, 12, 06, 32, 00, DateTimeKind.Utc);
// DateTime with offset
DateTimeOffset dateAndOffset =
new DateTimeOffset(utcTime, southPole.GetUtcOffset(utcTime));
Console.WriteLine(dateAndOffset);
Для перехода на летнее время см. Метод TimeZoneInfo.IsDaylightSavingTime .
bool isDst = southpole.IsDaylightSavingTime(DateTime.UtcNow);