DateTime.Parse can format unusual format strings?

Viewed 777

I was looking at a code in an application (Someone else wrote it),on some cases it worked fine and on some cases it gave exceptions,it was actually converting strings in datetime,here is the code

//5000 is the year,but what about "1" is it month or day ?,if its month
//then what about the day ?
DateTime time =  DateTime.Parse("1.5000");//1.5000 doesn't looks a date to me ?
time.ToString();//returns "1/1/5000 12:00:00 AM"

//where as if I give this string to DateTime.Parse();
time =  DateTime.Parse("2341.70");
//FormatException was unhandled
//String was not recognized as a valid DateTime.

A Confusing thought
How does this string "3.5000" (it matches the 1.5000 pattern) evaluates , does this means 3-3-5000 or 1-3-5000 ,the format is ambiguous its unclear and confusing !

My questions are,

  1. What kind of formats can DateTime.Parse expects ?
  2. Whats happening in the code above ?
  3. Suggestions to improve the code ?
2 Answers
Related