string strHijdt ="29-02-1435";
DateTime hdt = DateTime.ParseExact(strHijdt, "dd/MMM/yyyy HH:MI24",
CultureInfo.InvariantCulture);
得到錯誤,同時轉換爲字符串( 「29-02-1435」),以日期時間從字符串轉換爲datetime(阿拉伯文化英制)
string strHijdt ="29-02-1435";
DateTime hdt = DateTime.ParseExact(strHijdt, "dd/MMM/yyyy HH:MI24",
CultureInfo.InvariantCulture);
得到錯誤,同時轉換爲字符串( 「29-02-1435」),以日期時間從字符串轉換爲datetime(阿拉伯文化英制)
2/1435
只有28
天
那麼,下面將工作
string aa="28-02-1435";
DateTime hdt = DateTime.ParseExact(aa, "dd-MM-yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(hdt.ToLongDateString());
罪CE你給輸入作爲29-02-1435
即使您提供正確的日期時間格式(dd-MM-yyyy
),你會爲無效的日期出現錯誤
兩個問題在這裏: 正如上面所提到的,對於不匹配字符串預期的格式(有沒有時間,不同的分隔符) 2.如果您的日期字符串是回曆,您應該提供明確正確的文化或使用制度文化(傳遞null的IFormatProvider):
string strHijdt = "29-02-1435";
var culture = CultureInfo.GetCultureInfo("ar-SA");
DateTime hdt = DateTime.ParseExact(strHijdt, "dd-MM-yyyy", culture);
它不起作用。我檢查了你在上面提到的變化。但結果是失敗 –
什麼是故障?不要使用ToLongDateString(),因爲它會以格雷戈裏/英文格式打印日期,請嘗試使用'Console.WriteLine(hdt.ToString(culture));'而不是 – har07
使用解析精確您提供準確的格式,但是你的格式不匹配字符串 – wudzik