Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TryParseExact returns false, though I don't know why

Method TryParseExact in code block below returns true.
I would like to know why.
I think this date "2013.03.12" is invalid because this is not separated by slash but dot.

After I changed the CultureInfo "de-De" to "en-US", the method returns false. This could be a hint but I still don't know why this happens.

var format = new string[] { "yyyy/MM/dd" };
var parsed = new DateTime();
var result = DateTime.TryParseExact("2013.03.12", format, 
             new CultureInfo("de-DE"), DateTimeStyles.None, out parsed);
like image 534
Nigiri Avatar asked Aug 21 '13 06:08

Nigiri


1 Answers

I think your current DateSeparator is . (dot) and / automatically replace itself to it.

/ separator has a special meaning of "replace me with the current culture's date separator".

CultureInfo c = new CultureInfo("de-DE");
Console.WriteLine(c.DateTimeFormat.DateSeparator); //Prints . (dot)

Take a look at the "/" Custom Format Specifier.

like image 83
Soner Gönül Avatar answered Oct 11 '22 13:10

Soner Gönül