Преобразуйте UTC DateTime в другой Часовой пояс

У меня есть значение UTC DateTime, прибывающее из записи базы данных. У меня также есть зона пользовательского требуемого времени (экземпляр TimeZoneInfo). Как я преобразовываю тот UTC DateTime в зону местного времени пользователя? Кроме того, как я определяю, наблюдает ли зона пользовательского требуемого времени в настоящее время DST? Я использую.NET 3.5.

Спасибо, Mark

32
задан Mark Richman 30 March 2010 в 19:54
поделиться

1 ответ

Взгляните на структуру 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);
17
ответ дан 27 November 2019 в 20:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: