如何将包含AM/PM的字符串转换为DateTime?

bar*_*caf 12 c#

我如何解析这样的字符串:"2/22/2015 9:54:02 AM"到DateTime实例?

我目前正在使用DateTime.ParseExact方法,但没有AM/PM即:

 DateTime.ParseExact("2/22/2015 9:54:02", "M/dd/yyyy HH:mm:ss")
Run Code Online (Sandbox Code Playgroud)

我希望能够解析AM/PM标志.

Com*_*ity 35

您应该将小时格式(H)更改为小写,如下所示:

DateTime.ParseExact("2/22/2015 9:54:02 AM", "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

大写"H"表示24小时时间,小写"h"表示12小时时间,并且将尊重候选字符串中的AM/PM.


Llo*_*oyd 8

您可以使用说明tt符:

DateTime.ParseExact(
    "2/22/2015 9:54:02 PM",
    "M/dd/yyyy h:mm:ss tt", 
    CultureInfo.InvariantCulture
)
Run Code Online (Sandbox Code Playgroud)

但是请注意,这可能是特定于区域设置的.也HH指24小时制,AM/PM你一般使用12小时制,所以你想要使用hh或只是h为了那个.