2013-05-28 4 views
1

Я получаю даты из базы данных, и я хочу, чтобы преобразовать дату в формате ДД/ММ/ГГГГ,дата выдачи формат, String не был признан действительным DateTime

Я пытаюсь это, но он дает мне ошибку " Строка не была признана допустимым DateTime. "

DateTime pDate = DateTime.ParseExact("05/28/2013 12:00:00 AM", "dd/MM/yyyy", CultureInfo.InvariantCulture); 

Пожалуйста, дайте мне знать, как я могу конвертировать в формат dd/MM/yyyy?

Благодаря

+1

возможно дубликат http://stackoverflow.com/questions/2193012/string-was-not-recognized-as-a-valid-datetime-format-dd-mm- yyyy –

+2

Переключив «05» и «28»? –

+0

да, дата может быть '12/31/2013 12:00:00 'или что-то еще с этим форматом. –

ответ

3

2 шага:

DateTime pDate = DateTime.ParseExact("05/28/2013 12:00:00 AM", "MM/dd/yyyy hh:mm:ss", CultureInfo.InvariantCulture); 


return pDate.ToString("dd/MM/yyyy"); 
+0

Это не удастся, потому что у вас AM, PM в заданной строке – Damith

+0

вы правы. Я не проверял msdn на стандартный токен формата даты, который заботится о am/pm. Идея все еще стоит: 2 шага. И в зависимости от качества или диверсификации текстовых данных даты вы можете создать структуру, чтобы попробовать несколько строк формата даты, прежде чем сдаваться. – ZZZ

5

MM/dd/yyyy hh:mm:ss tt попробуйте вместо dd/MM/yyyy

если вы используете DateTime.ParseExactФормат строкового представления должен соответствовать указанному формату точно или исключение.

, если вам нужно только дату

DateTime pDate = DateTime.ParseExact("05/28/2013 12:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture); 
var dateOnly= pDate.ToString("dd/MM/yyyy"); 

В соответствии с Вашим комментарием, база данных содержит данные с типом «Дата», Таким образом, вы можете прочитать его непосредственно в DateTime. Вы можете преобразовать в строку, вызвав ToString с ожидаемым форматом.

+0

Это также дает такую ​​же ошибку. на самом деле время также с датой, когда я получаю от db, я хочу только дату. –

+0

@AltafSami добавлен пример кода – Damith

+2

@AltafSami Если вы выбрали дату из базы данных, почему вы используете строку? Вы можете поместить его непосредственно в переменную даты. –

Смежные вопросы