Преобразовать строку с датой и смещением UTC в DateTime

Я пытаюсь разобрать строку "20160918000500 +0200" на DateTime, содержащую значение смещения "+0200".

Я пробовал следующее, но это дает недопустимое DateTime исключение.

DateTime dtDateTime = DateTime.Parse("20160918000500 +0200",new CultureInfo("yyyyMMddHHmmss zzz"));

Есть ли способ преобразовать String точно в Datetime с помощью UTC offset value?


person Robin    schedule 18.09.2016    source источник
comment
Проверить - stackoverflow.com/questions / 179940 /   -  person Mrinal Kamboj    schedule 18.09.2016


Ответы (2)


Чтобы сохранить смещение, используйте метод DateTimeOffset.ParseExact:

string str = "20160918000500 +0200";
var result = DateTimeOffset.ParseExact(str, "yyyyMMddHHmmss zzz", CultureInfo.InvariantCulture);
Console.WriteLine(result);
person Raktim Biswas    schedule 18.09.2016

Я предлагаю попробовать один из ParseExact методы класса DateTime

person mkonvisar    schedule 18.09.2016
comment
Лучше было бы разобрать DateTimeOffset вместо DateTime, так как строка содержит часть смещения UTF. - person Soner Gönül; 18.09.2016