C#解析DateTime无法将字符串转换为DateTime
C# Parsing DateTime Unable to Convert String to DateTime
我按照我的日期变量的字符串输出,按照格式解析,还是遇到格式异常
我可以知道我应该更改什么吗?
string DOB = retrieved.Entities[i].GetAttributeValue<AliasedValue>("Contact.birthdate").Value.ToString();
//output: 4/13/2018 12:00:00AM
DateTime DOB_formatted = DateTime.ParseExact(DOB, "MM/dd/yyyy", null);
//System.FormatException
解决方案:将对象转换为 DateTime
DateTime DOB_formatted = Convert.ToDateTime(retrieved.Entities[i].GetAttributeValue<AliasedValue>("Contact.birthdate").Value);
ParseExact()
要求完美匹配。 MM/dd/yyyy
格式字符串需要 04/13/2018
,但值为 4/13/2018 12:00:00AM
。您需要 M/d/yyyy hh:mm:sstt
,并且您应该确认日期值没有前导零。还有an overload that takes an array of format strings,如果你不能相信数据源是一致的。
最后,根据评论,Value
的编译时类型是 Object
。但是 运行 时间呢? 运行-time 类型仍然很有可能是 already 一个 DateTime
值,您需要做的就是转换它。由于 internationalization/culture 问题,转换为字符串然后重新解析回 DateTime 的成本高得惊人。避免这些转换将为计算机节省 吨 的工作量,并且真正有助于提高性能。
我按照我的日期变量的字符串输出,按照格式解析,还是遇到格式异常
我可以知道我应该更改什么吗?
string DOB = retrieved.Entities[i].GetAttributeValue<AliasedValue>("Contact.birthdate").Value.ToString();
//output: 4/13/2018 12:00:00AM
DateTime DOB_formatted = DateTime.ParseExact(DOB, "MM/dd/yyyy", null);
//System.FormatException
解决方案:将对象转换为 DateTime
DateTime DOB_formatted = Convert.ToDateTime(retrieved.Entities[i].GetAttributeValue<AliasedValue>("Contact.birthdate").Value);
ParseExact()
要求完美匹配。 MM/dd/yyyy
格式字符串需要 04/13/2018
,但值为 4/13/2018 12:00:00AM
。您需要 M/d/yyyy hh:mm:sstt
,并且您应该确认日期值没有前导零。还有an overload that takes an array of format strings,如果你不能相信数据源是一致的。
最后,根据评论,Value
的编译时类型是 Object
。但是 运行 时间呢? 运行-time 类型仍然很有可能是 already 一个 DateTime
值,您需要做的就是转换它。由于 internationalization/culture 问题,转换为字符串然后重新解析回 DateTime 的成本高得惊人。避免这些转换将为计算机节省 吨 的工作量,并且真正有助于提高性能。