0

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

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

我收到“用户代码未处理 FormatException”。我尝试了几种格式,也尝试了不同的 CultureInfo,但似乎没有任何效果。我在谷歌和这个网站上搜索过,但似乎找不到摆脱异常的答案。

非常感谢您的帮助。

4

4 回答 4

3

您的输入格式与“定义输入所需格式的格式说明符”不同

DateTime.ParseExact(String, String, IFormatProvider) 方法解析日期的字符串表示形式,该表示形式必须采用 format 参数定义的格式。

所以你的输入需要是string datum = "2013/13/7";;为此以匹配您的格式说明符。

于 2013-08-13T08:05:02.897 回答
2

不指定格式,文化就可以了:

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

这也将解析"13/10/2013"

于 2013-08-13T08:06:39.593 回答
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"));
于 2013-08-13T08:06:25.067 回答
0
string datum = "13/7/2013";
DateTime dtDatum = DateTime.ParseExact(datum, "d/M/yyyy", CultureInfo.InvariantCulture);
于 2013-08-13T08:05:46.783 回答