为什么下面的代码会生成 FormatException?
DateTime.ParseExact("03/01/2012", "dd/MM/yyyy", null);
也许这与代码作为 MVC3 站点执行逻辑的一部分在 IIS 7.5 Express 下运行的事实有关?
为什么下面的代码会生成 FormatException?
DateTime.ParseExact("03/01/2012", "dd/MM/yyyy", null);
也许这与代码作为 MVC3 站点执行逻辑的一部分在 IIS 7.5 Express 下运行的事实有关?
您需要包含 CultureInfo,例如:
DateTime.ParseExact("03/01/2012", "dd/MM/yyyy", new CultureInfo("en-US"));
格式字符串中的斜杠对文化敏感,如果您不传入 CultureInfo,则使用当前文化。您也可以使用CultureInfo.InvariantCulture
它,它会起作用。Jon Skeet 在这里提供了一些详细的解释。
取决于你的文化,把它排除在外……
DateTime.ParseExact("03/01/2012", "dd/MM/yyyy", CultureInfo.InvariantCulture);
根据文档,aFormatException
被抛出,给定以下条件之一:
public static DateTime ParseExact(
string s,
string format,
IFormatProvider provider
)
如果你传入一个 null IFormatProvider
,我认为它默认为当前线程的文化。我必须在 Reflector 中查看这个。你有什么理由想通过null
吗?
更新:
我在 .NET Reflector 中查看了它,它默认为当前线程的DateTimeFormatInfo
. 我不知道我是否可以在这里发布代码。