简体   繁体   中英

How can I parse this datetime string?

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);

Msdn

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM