Конвертировать UTC DateTime в DateTimeOffset

Мне нужно конвертироватьUTC дата строки до.DateTimeOffsets

Это должно работать с часовым поясом, который отличается от часового пояса компьютеров. Например. текущий часовой пояс компьютера составляет +02: 00, но я хочу создать DateTimeOffset со смещением -4: 00.

Я уже прочитал много вопросов здесь по stackoverflow, но ни один из них не решил мою проблему.

Вот что мне нужно сделать:

Входные данные: "2012-11-20T00: 00: 00Z»

Выход: DateTimeOffset with:

UtcDateTime of2012-11-20 00:00правильное смещение Utc для определенного часового пояса (01:00 в этом примере)LocalDateTime:2012-11-20 01:00 (= UtcDateTime + Offset)

Конечно, летнее время должно быть принято во внимание.

редактировать: Чтобы сделать вещи еще яснее, попробуйте выполнить следующий фрагмент кода:

DateTimeOffset result;
const string dateString = "2012-11-20T00:00:00Z";
var timezone = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time"); //this timezone has an offset of +01:00:00 on this date

//do conversion here

Assert.AreEqual(result.Offset, new TimeSpan(1, 0, 0));  //the correct utc offset, in this case +01:00:00
Assert.AreEqual(result.UtcDateTime, new DateTime(2012, 11, 20, 0, 0, 0)); //equals the original date
Assert.AreEqual(result.LocalDateTime, new DateTime(2012, 11, 20, 1, 0, 0));

Ответы на вопрос(3)

Ваш ответ на вопрос