Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C解析DateTime无法将字符串转换为DateTime_C#_Datetime_Parsing_Xrm - Fatal编程技术网

C# C解析DateTime无法将字符串转换为DateTime

C# C解析DateTime无法将字符串转换为DateTime,c#,datetime,parsing,xrm,C#,Datetime,Parsing,Xrm,我遵循日期变量的字符串输出,并根据格式进行解析,但仍然遇到格式异常 我可以知道我应该换什么吗 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/yy

我遵循日期变量的字符串输出,并根据格式进行解析,但仍然遇到格式异常

我可以知道我应该换什么吗

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 DOB_formatted = Convert.ToDateTime(retrieved.Entities[i].GetAttributeValue<AliasedValue>("Contact.birthdate").Value);
ParseExact需要完美匹配。MM/dd/yyyy格式字符串需要2018年4月13日,但值为2018年4月13日12:00:00AM。您需要M/d/yyyy hh:mm:sstt,并且应该确认日期值没有前导零。如果您不能相信数据源是一致的,那么还有一个问题


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

您可以尝试:DateTime.ParseExactDOB,MM/dd/yyyy,new Culture通知我们,并告诉我它是否有效吗?第一行的.Value是否还不是DateTime?如果它是对象,您可能只需要将它转换为.After.Value,它是一个对象,如果我不将它转换为字符串,它会给我一个错误tho@Tony感谢您的建议,出现了相同的错误。DateTime DOB=DateTimeretrieved.Entities[i]。GetAttributeValueContact.birthdate.Value;非常感谢。我把它转换成了DateTime,它成功了。将编辑我的帖子。