无法使用ParseExact将字符串转换为日期时间

时间:2014-11-04 14:29:45

标签: c# .net datetime cultureinfo

我的XML配置数据文件中有一个这样的字符串(12小时制):

expires="10/27/2014 2:42:57 PM"

我想将该值指定为类的(datetime)成员,如下所示:

 Common.SOExpiries = 
     DateTime.ParseExact(gSet.Attribute("expires").Value, "MM/dd/yyyy hh:mm:ss",    
     CultureInfo.InvariantCulture);

但我收到错误' String未被识别为有效的DateTime'

我在这里做错了什么?

这是在英国顺便说一句,所以CultureInfo应该没问题

2 个答案:

答案 0 :(得分:5)

应该是:

"MM/dd/yyyy h:mm:ss tt"

因为您忘记了tt表示上午/下午和h,因为您有1-12小时,而不是01-12小时格式。考虑您的秒数和分钟数是否也应为sm

答案 1 :(得分:1)

您还需要解析AM / PM部分。

Common.SOExpiries = 
 DateTime.ParseExact(gSet.Attribute("expires").Value, "MM/dd/yyyy hh:mm:ss tt",    
 CultureInfo.InvariantCulture);