What surprises me is how "robust" DateTime.TryParse can be (note: my only experience using DateTime.TryParse is with standard English char encodings); example:
string strDate = "\t 12 . 12 /2015 14:34";
DateTime realDate;
DateTime.TryParse(strDate, out realDate);
That will give you a plausible result.
I am not clear about the range of possible culture-contexts and char-whatevers you may be working with, but it might be valuable to see if DateTime.TryParse may be as robust in those other contexts.
Edit: Using Midi-Mick's test data with DateTime.TryParse:
List<string> test = new List<string>
{
"29/11/15",
"29 November 2015 6:27PM",
"2015-11-29T18:27:45.50+10:00",
"2015-11-29 18:27:45.50Z",
"NOV 29, 2015",
"21:15"
};
private void parseTest()
{
DateTime testDate;
foreach (string str in test)
{
if (DateTime.TryParse(str, out testDate))
{
Console.WriteLine(testDate);
}
else
{
Console.WriteLine("could not parse: {0}", str);
}
}
}