2015-03-17 5 views
0

У меня есть строковая переменная, данные которой будут ниже.Преобразование строки в DateTime failing

18-03-2015 16:39:15

я пытаюсь преобразовать его в действительный DateTime с час/минута/секунда, но до сих пор ниже линии не удается.

DateTime dt = DateTime.ParseExact("18-03-2015 16:39:15", "dd-MM-yyyy h:m:s", CultureInfo.InvariantCulture); 

ответ

7

Вы должны использовать прописные H или HH, так "dd-MM-yyyy HH:m:s" с этого времени: 16:39:15.

См: The "HH" Custom Format Specifier

Так строчной от 1 до 12 и заглавного 24-часового формата. Если вы используете H или HH, зависит от того, возможно ли 4:39:15 или 04:39:15. Один H поддерживает оба формата, поэтому с нулевым или без начального нуля, тогда как HH разрешает только 04:39:15.

+0

я сделал изменения, но до сих пор с этой выборки строки, дт возвращается как «1/1/0001 12:00:00 AM " – StackTrace

+0

Он либо выдает исключение, либо возвращает действительный' DateTime', поскольку вы не используете 'DateTime.TryParseExact'. Так это реальный код, который вы показали? Если я проверю это, это сработает для меня. –

+0

работает после очистки раствора – StackTrace

1

Он должен быть HH:mm:ss в формате

DateTime dt = DateTime.ParseExact("18-03-2015 16:39:15", "dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture); 
// So: dt.ToString("dd-MM-yyyy HH:mm:ss") is 18-03-2015 16:39:15 

Here некоторые примеры форматирования даты с образцами