Reputation: 2707
Hi I have the following method and I'm passing it the value "07 Jan 2014 13:48:46" and from what I understand the TryParseExact should be matching the format "dd MMM yyyy hh:mm:ss" and returning true, however it is returning false, any ideas?
string[] formats= {"dd-MM-yyyy hh:mm:ss",
"dd MMM yyyy hh:mm:ss",
"dd MMM yyyy",
"hh-mm-ss",
"dd-MM-yyyy",
"dd-MM-yy",
};
DateTime result;
if (DateTime.TryParseExact(value, formats, CultureInfo.CurrentCulture, DateTimeStyles.None, out result))
{
return result;
}
return null;
Upvotes: 1
Views: 8058
Reputation: 19204
24-hour time requires use of HH
, not hh
. Lowercase h
is for 12 hour time.
See: http://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx
Upvotes: 15
Reputation: 98750
Because none of your format have 24-hour clock.
hh
specifier is for 01
to 12
. It doesn't have 13
as an hour.
Use HH
specifier instead which is for 00
to 23
.
For more information, take a look at;
Upvotes: 4