I can't figure it out, where did I go wrong?
I got the following datetime string, and need to parse it to datetime:
string timestr = "1/20/2014 12:05:16 AM"
And I trying to parse it like this:
DateTime.ParseExact( timestr,
"MM/dd/yyyy hh:mm:ss tt",
null);
When trying to do this it returns
"string was not recognized as a valid DateTime"
Any tip?
MM
is for 01
to 12
Use M
instead which is for 1
to 12
.
string timestr = "1/20/2014 12:05:16 AM";
var date = DateTime.ParseExact(timestr,
"M/dd/yyyy hh:mm:ss tt",
CultureInfo.InvariantCulture);
Console.WriteLine(date);
Output will be;
1/20/2014 12:05:16 AM
Here a demonstration
.
For more information, take a look at;
Also be careful about your hour formatting. hh
is for 01
to 12
, HH
is for 00
to 23
. If your hour will be 13
, 14
or 15
etc.. hh
format will fail.
And since you using null
as a IFormatProvider
in your DateTime.ParseExact
method, that means it uses CurrentCulture
by default. And if it's DateSeparator
is not /
, your method throws FormatException
even your string and format matches exactly because "/"
format specifier has a special meaning in custom date and time formats like; replace me current culture's or suplied culture date separator
Did you try
DateTime returnedDate = new DateTime();
DateTime.TryParse(timestr, out returnedDate);
M
-The month, from 1 through 12.
The "M" custom format specifier represents the month as a number from 1 through 12 (or from 1 through 13 for calendars that have 13 months). A single-digit month is formatted without a leading zero.
DateTime.ParseExact( timestr,"M/dd/yyyy hh:mm:ss tt",CultureInfo.InvariantCulture);
PLease try
string timestr = "1/20/2014 12:05:16 AM";
DateTime dt = new DateTime();
DateTime.TryParse(timestr, out dt);
试试这个:
this.RequestDate = Convert.ToDateTime(this.DcmCreateDate).ToString("dd/MM/yyyy");
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.