How do I use DateTime.Parse to parse a datetime with the following format:
08 Feb 2011 06:46
In response to the answer I've received so far, I tried the following:
item.ServerDate = DateTime.ParseE开发者_运维技巧xact
("08 Feb 2011 06:46", "dd MMM yyyy hh:mm", System.Globalization.CultureInfo.InvariantCulture);
I still get the exception: String was not recognized as a valid DateTime.
UPDATE: The following code works without the hour and minute:
DateTime.ParseExact("08 Feb 2011","dd MMM yyyy",null)
DateTime.ParseExact("08 Feb 2011 06:46", "dd MMM yyyy hh:mm",
System.Globalization.CultureInfo.InvariantCulture);
In your question's sample code, you forgot to capitalize all of the month "M"s.
Edit
As Anton points out, the "H"s also need to be capitalized to use military time.
DateTime.ParseExact("08 Feb 2011 13:46", "dd MMM yyyy HH:mm",
System.Globalization.CultureInfo.InvariantCulture)
The above code works for me. I can't imagine why you'd get an error on the same code, when we're specifying the culture. Can you double-check your code and inputs?
DateTime.ParseExact
might work for you: http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx
From the documentation:
"hh": The hour, using a 12-hour clock from 01 to 12.
"HH": The hour, using a 24-hour clock from 00 to 23.
and
In the .NET Framework 4, the ParseExact method throws a FormatException if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. In the .NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.
So try replacing "hh"
by "HH"
in your format specifier, ie try "dd MMM yyyy HH:mm"
精彩评论