2015-02-02 5 views
0

Я хочу проанализировать длинную строку даты на сегодняшний день.C# Parse Long Date string to date time

//Friday, December 19, 201421:00:44:987 

Вот что Ive сделано до сих пор

DateTime.ParseExact(item.Date, "dddd, MMMM d, yyyyhh:mm:SS:fff", CultureInfo.InvariantCulture).ToShortDateString(); 

Дает за исключением String was not recognized as a valid DateTime.

+0

... как это происходит, до сих пор? – Plutonix

+0

В чем проблема? –

+0

Строка не была признана действительной DateTime. – user3549519

ответ

6

Friday, December 19, 201421:00:44:987 представляет даты в день недели, день месяца, YearHour: минуты: секунды: Миллисекунды формат.

При взгляде в твой формат можно увидеть ошибки 2. Во-первых, час в вашем перемешивании равен 21. И он использует 24-часовые часы от 0 до 23. Итак, вы должны изменить hh на HH. И вторая ошибка заключается в том, что вы использовали SS, чтобы указать секунды в вашей строке. Вы должны изменить SS к ss:

DateTime.ParseExact(item.Date, "dddd, MMMM d, yyyyHH:mm:ss:fff", CultureInfo.InvariantCulture).ToShortDateString(); 

.NET Fiddle

Посмотрите на таблицу в this статье, которая описывает все спецификаторы формата пользовательских даты и времени.

+0

По-прежнему получаю ту же ошибку. Попробовал ли вы попробовать до ответа? – user3549519

+0

@ user3549519 Да, определенно. –

+0

@ user3549519 Вы изменили 'SS' на' ss' тоже? –

0

или попытаться к нему

DateTime date = new DateTime(2015, 01, 02, 9, 23, 18, DateTimeKind.Utc);