相关疑难解决方法(0)

为什么DateTime.ParseExact()不能使用"M/d/yyyy"解析"9/1/2009"

我有一个看起来像这样的字符串:"9/1/2009".我想将其转换为DateTime对象(使用C#).

这有效:

DateTime.Parse("9/1/2009", new CultureInfo("en-US"));
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么这不起作用:

DateTime.ParseExact("9/1/2009", "M/d/yyyy", null);
Run Code Online (Sandbox Code Playgroud)

日期中没有单词(如"九月"),我知道具体的格式,所以我宁愿使用ParseExact(我不明白为什么需要CultureInfo).但我继续得到可怕的"字符串未被识别为有效的DateTime"异常.

谢谢

一点点跟进.以下是3种有效的方法:

DateTime.ParseExact("9/1/2009", "M'/'d'/'yyyy", null);
DateTime.ParseExact("9/1/2009", "M/d/yyyy", CultureInfo.InvariantCulture);
DateTime.Parse("9/1/2009", new CultureInfo("en-US"));
Run Code Online (Sandbox Code Playgroud)

这里有3个不起作用:

DateTime.ParseExact("9/1/2009", "M/d/yyyy", CultureInfo.CurrentCulture);
DateTime.ParseExact("9/1/2009", "M/d/yyyy", new CultureInfo("en-US"));
DateTime.ParseExact("9/1/2009", "M/d/yyyy", null);
Run Code Online (Sandbox Code Playgroud)

所以,Parse()适用于"en-US",但不适用于ParseExact ...意外?

.net datetime parsing cultureinfo

56
推荐指数
1
解决办法
11万
查看次数

标签 统计

.net ×1

cultureinfo ×1

datetime ×1

parsing ×1