TryParseExact returns false, though I don't know why
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.
As @Soner Gönül points out, the /
is taken as "the date separator" in custom format strings. If you want to only accept /
characters, you need to escape them:
var format = new string[] { @"yyyy\/MM\/dd" };