我正在尝试将字符串解析为DateTime:
string datum = "13/7/2013";
DateTime dtDatum = DateTime.ParseExact(datum, "yyyy-d-M", CultureInfo.GetCultureInfo("nl-NL"));
我收到“FormatException未被用户代码处理”。我尝试过几种格式,也有不同的CultureInfo,但似乎没什么用。我在Google和这个网站上搜索过,但似乎无法找到摆脱异常的答案。
非常感谢帮助。
答案 0 :(得分:3)
您的输入格式与输入的"format specifier that defines the required format of"不同。
DateTime.ParseExact(String,String,IFormatProvider)方法解析日期的字符串表示形式,该日期必须采用format参数定义的格式。
所以你的输入必须是string datum = "2013/13/7";
;为了匹配您的格式说明符。
答案 1 :(得分:2)
不要指定格式,文化会做的工作:
string datum = "13/7/2013";
DateTime dtDatum = DateTime.Parse(datum, CultureInfo.GetCultureInfo("nl-NL"));
这也会解析"13/10/2013"
。
答案 2 :(得分:1)
ParseExact需要解析的日期是指定的确切格式:
所以:
string datum = "13/7/2013";
DateTime dtDatum = DateTime.ParseExact(datum, "d/M/yyyy", CultureInfo.GetCultureInfo("nl-NL"));
或
string datum = "2013-13-7";
DateTime dtDatum = DateTime.ParseExact(datum, "yyyy-d-M", CultureInfo.GetCultureInfo("nl-NL"));
答案 3 :(得分:0)
string datum = "13/7/2013";
DateTime dtDatum = DateTime.ParseExact(datum, "d/M/yyyy", CultureInfo.InvariantCulture);