2013-12-09 3 views
0
string strHijdt ="29-02-1435"; 

    DateTime hdt = DateTime.ParseExact(strHijdt, "dd/MMM/yyyy HH:MI24", 
    CultureInfo.InvariantCulture); 

Получение ошибки во время преобразования в строку ("29-02-1435") для DATETIMEПреобразовать в DATETIME из строки (арабской культуры на английском)

+1

с помощью разобрана точно вас не обеспечивают точный формат , но ваш формат не соответствует строке – wudzik

ответ

0

2/1435 имеет только 28 дней

так, ниже будет работать

string aa="28-02-1435"; 
DateTime hdt = DateTime.ParseExact(aa, "dd-MM-yyyy", CultureInfo.InvariantCulture); 
Console.WriteLine(hdt.ToLongDateString()); 

DEMO

грех се вы дали вход в качестве 29-02-1435 даже предоставить корректную формат времени даты (dd-MM-yyyy), вы получите сообщение об ошибке для недопустимого даты

0

две проблемы здесь: 1. Как уже упоминалось выше, ожидается формат не соответствует строка (есть нет времени, по-разному сепаратор) 2. Если строка даты в календаре хиджры, вы должны либо предоставить правильную культуру явно или использование системы культуры (передать нуль для IFormatProvider):

string strHijdt = "29-02-1435"; 
var culture = CultureInfo.GetCultureInfo("ar-SA"); 
DateTime hdt = DateTime.ParseExact(strHijdt, "dd-MM-yyyy", culture); 
+0

не работает. я проверил, с какими и упомянутыми изменениями выше. но результатом является сбой –

+0

что такое отказ? Не используйте ToLongDateString(), так как он напечатает дату в формате gregorian/english, попробуйте 'Console.WriteLine (hdt.ToString (культура)); вместо этого – har07

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