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

本文关键字:转换 日期 时间 字符串 ParseExact | 更新日期: 2023-09-27 18:28:58

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

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

我想将该值分配为类的(日期时间)成员,如下所示:

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

但我收到错误"字符串未被识别为有效的DateTime"

我在这里做错了什么?

这是在英国btw,所以CultureInfo应该是正常的

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

应该是:

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

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

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

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