2016-10-20 3 views
0

Как проанализировать дату и время в миллисекундах для «20160803T0509 + 0100». Я не могу изменить формат ввода даты и времени, поскольку я получаю файл данных клиента.DateTime Ошибка анализа для миллисекундного уровня

Клиент использует в качестве локального времени сервера системы в UTC ISO 8601 со смещением

Я использованияКонтактная простую функцию

Console.WriteLine(Convert.ToDateTime("20160803T0509+0100")); 

Ошибка:

String was not recognized as a valid DateTime.

+0

Секундочки .. Ваш '+ 0100' часть секунды и миллисекунды, как' 01', как секунд и '00' в миллисекундах? Вы действительно уверены, что это не [UTC Offset] (https://en.wikipedia.org/wiki/UTC_offset)? Я никогда не видел этот формат раньше. И как-то странно, так как он имеет знак +. –

ответ

1

использование DateTime.ParseExact вместо

DateTime result = DateTime.ParseExact("20160803T0509+0100", "yyyyMMddTHHmm+ssff", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); 
2

Я думаю, что +0100 для часового пояса не миллисекунды

var dateTime= DateTime.ParseExact("20160803T0509+0100", "yyyyMMddTHHmmzzz", CultureInfo.CurrentCulture); 
0

Просто используйте этот

DateTime dt = DateTime.ParseExact("20160803T0509+0100", "yyyyMMddTHHmmzzz", CultureInfo.InvariantCulture); 
Смежные вопросы