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

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

得到錯誤,同時轉換爲字符串( 「29-02-1435」),以日期時間從字符串轉換爲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

罪CE你給輸入作爲29-02-1435即使您提供正確的日期時間格式(dd-MM-yyyy),你會爲無效的日期出現錯誤

0

兩個問題在這裏: 正如上面所提到的,對於不匹配字符串預期的格式(有沒有時間,不同的分隔符) 2.如果您的日期字符串是回曆,您應該提供明確正確的文化或使用制度文化(傳遞null的IFormatProvider):

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

它不起作用。我檢查了你在上面提到的變化。但結果是失敗 –

+0

什麼是故障?不要使用ToLongDateString(),因爲它會以格雷戈裏/英文格式打印日期,請嘗試使用'Console.WriteLine(hdt.ToString(culture));'而不是 – har07

相關問題