为什么我不能解析这个字符串到目前为止?

时间:2013-08-13 08:01:50

标签: c# string parsing datetime

我正在尝试将字符串解析为DateTime:

string datum = "13/7/2013";
DateTime dtDatum = DateTime.ParseExact(datum, "yyyy-d-M", CultureInfo.GetCultureInfo("nl-NL"));

我收到“FormatException未被用户代码处理”。我尝试过几种格式,也有不同的CultureInfo,但似乎没什么用。我在Google和这个网站上搜索过,但似乎无法找到摆脱异常的答案。

非常感谢帮助。

4 个答案:

答案 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);