为什么以下代码会产生FormatException异常?
DateTime.ParseExact("03/01/2012", "dd/MM/yyyy", null);
也许这与代码在作为MVC3站点执行逻辑的一部分在IIS 7.5 Express下运行有关?
DateTime.ParseExact("03/01/2012", "dd/MM/yyyy", null);
也许这与代码在作为MVC3站点执行逻辑的一部分在IIS 7.5 Express下运行有关?
DateTime.ParseExact("03/01/2012", "dd/MM/yyyy", new CultureInfo("en-US"));
格式字符串中的反斜杠是与文化有关的,如果你不传入CultureInfo,则会使用当前的文化。你也可以使用 CultureInfo.InvariantCulture
,这也可以起作用。 Jon Skeet在这里提供了一些详细的解释。
CultureInfo.CurrentCulture.DateTimeFormat.DateSeparator
,它可能是 /
、-
、.
等等。如果您想使用一个字面上的斜杠,并且不想使用 InvariantCulture
,请转义斜杠,例如 DateTime.ParseExact("03/01/2012", @"dd\/MM\/yyyy", null);
。 - Jeppe Stig NielsenDateTime.ParseExact("03/01/2012", "dd/MM/yyyy", CultureInfo.InvariantCulture);
FormatException
异常:public static DateTime ParseExact(
string s,
string format,
IFormatProvider provider
)
如果传入null的IFormatProvider,它将默认使用当前线程的区域设置。我需要在Reflector中查看这个。你为什么想传入null呢?
更新:
我在.NET Reflector中查看了它,并且默认为当前线程的DateTimeFormatInfo。我不知道是否允许在此处发布代码。