2014-09-08 4 views
0

У меня очень хорошо исследовался весь вопрос, как this, this и this. Тем не менее, независимо от того, что я пытаюсь, я все еще получаю исключение формата:Преобразование строки Date в формат DateTime?

string DatePaid="9/5/2012"; 
var date = DateTime.ParseExact(DatePaid, "dd/MM/yyyy", CultureInfo.InvariantCulture); 

Я понятия не имею, что я делаю неправильно?

ответ

4

EDIT:

Поскольку вы изменили строку даты ваш вопрос "9/5/2012" теперь может быть Day/Month/Year или Month/Day/Year Предполагая, что это Day/Month/Year, Вы получаете исключение из-за использования dd поскольку это требует дня часть будет в двойных цифрах. Итак, в вашей строке день 9 должен быть 09.

Вы можете использовать одиночные d и M, которые будут работать как для одного, так и для двузначного числа день и месяц соответственно.

Так что ваш код должен быть:

string DatePaid = "9/5/2012"; 
var date = DateTime.ParseExact(DatePaid, "d/M/yyyy", CultureInfo.InvariantCulture); 

Старого Ответ


Вы получаете исключение формата, потому что ваш формат не так. Ваш формат должен быть "M/dd/yyyy", или если у вас есть однозначная дневная часть, то используйте d, который будет анализировать как одну, так и двузначную дневную часть.

string DatePaid = "9/15/2012"; 
var date = DateTime.ParseExact(DatePaid, "M/d/yyyy", CultureInfo.InvariantCulture); 

См: Custom Date and Time Format Strings

0

Попробуйте, как это.

 string DatePaid="9/15/2012"; 

var date = DateTime.ParseExact(DatePaid, "M/dd/yyyy", CultureInfo.InvariantCulture); 
1

Ваш ММ (месяц) будет равен 15. Есть только 12 месяцев в году не 15.

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