如果我指定确切的结构,为什么TryParseExact需要CultureInfo?

Roy*_*mir 7 c# datetime cultureinfo .net-4.0

看着

DateTime.TryParseExact(dateString, "M/d/yyyy hh:mm:ss tt",
                           CultureInfo.InvariantCulture, 0, out dateValue)
Run Code Online (Sandbox Code Playgroud)

我提供了确切的结构来寻找: M/d/yyyy hh:mm:ss tt

如果是这样,我为什么CultureInfo还需要指定呢?

Vla*_*lad 9

好吧,月份名称也可以本地化.也许在一些异国文化中,岁月也会以不同的方式计算.

编辑:
示例:

string x = "Montag, 2. April 2012";
DateTime dt1, dt2;
bool r1 = DateTime.TryParseExact(x, "D", new CultureInfo("de-DE"), 0, out dt1);
bool r2 = DateTime.TryParseExact(x, "D", new CultureInfo("en-US"), 0, out dt2);
Run Code Online (Sandbox Code Playgroud)

(r1 == true,r2 == false).

或者,其他方式:

string y = "Monday, April 02, 2012";
DateTime dt3, dt3;
bool r3 = DateTime.TryParseExact(y, "D", new CultureInfo("de-DE"), 0, out dt3);
bool r4 = DateTime.TryParseExact(y, "D", new CultureInfo("en-US"), 0, out dt4);
Run Code Online (Sandbox Code Playgroud)

(r3 == false,r2 == true).