繁体   English   中英

C# 解析日期时间无法将字符串转换为日期时间

[英]C# Parsing DateTime Unable to Convert String to DateTime

我按照我的日期变量的字符串output,按照格式解析,还是遇到Format Exception。

我可以知道我应该改变什么吗?

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

解决方案:将 Object 转换为 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 ,并且您应该确认日期值没有前导零。 如果您不相信数据源是一致的,那么还有一个重载采用格式字符串数组

最后,根据评论, Value的编译时类型是Object 但是运行时呢? 运行时类型很可能已经DateTime值,您需要做的就是转换它。 由于国际化/文化问题,转换为字符串然后重新解析回 DateTime 的成本高得惊人。 避免这些转换将为计算机节省大量工作,并且真正有助于提高性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM