2013-07-16 2 views
0

Что у меня есть:формат C# DateTime с входом из строки

string format = "yyyy.MM.dd HH:mm:ss:ffff"; 

string eventdatetime = "2013.07.12 15:32:04:4687"; 

Что мне нужно сделать, чтобы принять строку eventdatetime и поместить его в переменную DateTime, позволяет называть его «х». И он должен быть в формате yyyy.MM.dd HH: mm: ss: ffff ". Не знаю, правильно ли это, но должно выглядеть так:" 2013.07.12 15: 32: 04: 4687 ". Это доцент работы с:...

DateTime x = DateTime.ParseExact(eventdatetime, format, System.Globalization.CultureInfo.InvariantCulture); 

Любой знает, что я продолжаю получать AM/PM и неправильный порядок Wich говорит мне, что формат не работал

+0

Просто простой "правописание" ошибка на вашем конце - [см мой ответ] (http://stackoverflow.com/a/17674608/1185053). –

ответ

1

DateTime не имеет формат Он просто представляет собой дату и время. Если вы хотите, чтобы отображал его в определенном формате, преобразуйте его обратно в string с соответствующими спецификаторами формата:

string format = "yyyy.MM.dd HH:mm:ss:ffff"; 
string eventdatetime = "2013.07.12 15:32:04:4687"; 
DateTime x = DateTime.ParseExact(eventdatetime, format, 
           CultureInfo.InvariantCulture); 

var display = x.ToString("yyyy.MM.dd HH:mm:ss:ffff"); 

Кроме того, zzzz обозначает часовой пояс. Вы хотите ffff, который обозначает доли секунды.

+0

А, вот почему. Тогда я должен решить свою проблему. Благодарю. – butterbox

0

z предназначен для смещения UTC, а не доли секунды. Вместо этого используйте f. See MSDN documentation for details.

string format = "yyyy.MM.dd HH:mm:ss:ffff"; 
Смежные вопросы