C# 使用parse-exact将字符串解析为datetime

C# 使用parse-exact将字符串解析为datetime,c#,datetime,C#,Datetime,我正在尝试使用ParseExact将字符串解析为datetime,但一直失败。。 我在下面进行了尝试,但收到一个错误:字符串未被识别为有效的日期时间 string topA = "3/25/2016 12:00:00 AM"; DateTime d = new DateTime(); d = DateTime.ParseExact(topA, "dd/MM/yyyy HH:mm:ss tt", null); 根据您的字符串,正确的格式应该是M/dd/yyyy hh:mm:ss tt,最好是 正

我正在尝试使用ParseExact将字符串解析为datetime,但一直失败。。 我在下面进行了尝试,但收到一个错误:字符串未被识别为有效的日期时间

string topA = "3/25/2016 12:00:00 AM";
DateTime d = new DateTime();
d = DateTime.ParseExact(topA, "dd/MM/yyyy HH:mm:ss tt", null);

根据您的字符串,正确的格式应该是
M/dd/yyyy hh:mm:ss tt
,最好是


正如Soner Gönül所指出的,您的格式应该是“M/dd/yyyy hh:mm:ss tt”。可能最好使用DateTime.TryParse()代替欧洲文化。swap
dd/MM
。而且
HH
适用于24小时制,因此12:00:00 AM无效,请使用
HH
或00:00:00 AMit worked!如果我通过一个月的2位数字,它也可以工作吗?如何处理这两种情况?@JuniorJohn
M
说明符实际上可以解析两位数字。比如,
M
说明符用于
1
12
MM
说明符用于
01
12
(请注意单个数字的前导零)
string topA = "3/25/2016 12:00:00 AM";
DateTime d = DateTime.ParseExact(topA, "M/dd/yyyy hh:mm:ss tt", 
                                        CultureInfo.InvariantCulture);