TryParseExact returns false, though I don't know why

.net, c#, datetime, datetime-parsing, string

Solution

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.

Problem

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); ```

Original source

Related problems