[英]Unable to convert DateTime string to DateTime in C# using DateTime.ParseExact()
[英]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.