2016-03-28 74 views
2

我想解析一个字符串datetime使用ParseExact但我保持失败.. 我试过下面,但收到一个错误:字符串未被识别为有效的DateTime。解析字符串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); 
+0

SonerGönül指出,您的格式应该是“M/dd/yyyy hh:mm:ss tt”。用DateTime.TryParse()代替欧洲文化可能会更好。 –

+0

交换'dd/MM'。 “HH”为24小时系统,因此12:00:00 AM无效,请使用'hh'或00:00:00 AM –

回答

3

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

string topA = "3/25/2016 12:00:00 AM"; 
DateTime d = DateTime.ParseExact(topA, "M/dd/yyyy hh:mm:ss tt", 
             CultureInfo.InvariantCulture); 
+0

!如果我通过一个2位数的月份,它也可以工作吗?我该如何处理这两种情况? –

+0

@JuniorJohn'M'说明符_can_实际解析两位数月份。例如; 'M'说明符用于'1'至'12',但'MM'说明符用于'01'至'12'(注意前导零为单个数字) –