2014-10-28 4 views
0

У меня возникла проблема при преобразовании строки в DateTime.It дает мне исключение «строка не была признана как действительная дата-время».String Разговор с DateTime

Вот моя входная строка

10/28/2014 3:13:12 AM" 

Код сниппета

DateTime dt = DateTime.ParseExact("10/28/2014 3:13:12 AM", "dd-MMM-yyyy HH:mm", CultureInfo.InvariantCulture); 

Я прошел через пару переполнение стека сообщений, но по-прежнему имея такой же вопрос.

Ссылка Сообщение String was not recognized as a valid DateTime in C# asp.net

ответ

0

Используйте этот формат строки: "MM/dd/yyyy h:mm:ss tt":

DateTime dt = DateTime.ParseExact("10/28/2014 3:13:12 AM", "MM/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture); 

Если вы хотите, чтобы преобразовать полученный DateTime обратно в Stering с этим форматом: dd-MMM-yyyy HH:mm:

string result = dt.ToString("dd-MMM-yyyy HH:mm", CultureInfo.InvariantCulture); 

CultureInfo.InvariantCulture заставляет имена английских месяцев вместо локализованного имени.

+0

Спасибо, но я должен тайному его в «дд-MMM-YYYY HH: мм» Формат – user1030128

+0

@ user3751544: я уже редактировал свой ответ. –

0

Вам не хватает секунд (ss) и обозначения AM/PM (tt). Пожалуйста, обратитесь к http://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx за различные обозначения и то, как они интерпретируются в этом преобразовании.

DateTime dt = DateTime.ParseExact("10/28/2014 3:13:12 AM", "MM/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture); 

Без этого он не знает, как интерпретировать дополнительные данные, которые вы передали.

Это присвоит dt значение 10/28/2014 3:13:12 AM

+0

По-прежнему получение "{" Строка не была признана действительной DateTime. "}" – user1030128

+0

@ user3751544 Это работает правильно для меня. Можете ли вы проверить, что ваш формат ('MM/dd/yyyy h: mm: ss tt') точно соответствует мне? – grovesNL