[英]String was not recognized as a valid DateTime for format yyMMdd
我有一个类似下面的字符串:
"9/30/2017 12:00:00 AM"
希望将其转换为格式yyMMdd
var evan = dataRow["ValueDate"].ToString(); //Output is "9/30/2017 12:00:00 AM"
DateTime dt = DateTime.ParseExact(evan,"yyMMdd",CultureInfo.InvariantCulture);
比发挥作用:
dt.ToString("yyMMdd");
错误消息:无法将字符串识别为格式yyMMdd的有效DateTime
我怎么了
谢谢
ParseExact
用于解析以特定格式输入的字符串。 要显示该字符串,请将格式字符串传递给ToString
方法:
var evan = dataRow["ValueDate"].ToString("yyMMdd");
DateTime.ParseExact
期望您提供的数据为您指定的精确格式。 您的字符串9/30/2017 12:00:00 AM
与您的格式yyMMdd
不匹配。 因此,要么尝试仅使用DateTime.Parse
,要么使您的格式与数据匹配。 就像是
DateTime dt = DateTime.ParseExact(evan,"M/dd/yyyy HH:mm:ss tt",CultureInfo.InvariantCulture);`
然后,您应该可以执行dt.ToString("yyMMdd");
从海报收集信息后,我成功地理解并解决了我的错误:
在仔细咨询了MSDN之后,这就是我一直在寻找的解决方案:
输入 :
dataRow["ValueDate"].ToString() // "9/30/2017 12:00:00 AM"
代码:
DateTime convertedDate;
convertedDate=Convert.ToDateTime(dataRow["ValueDate"].ToString());
var evan = convertedDate.ToString("yyMMdd");
输出:
"170930" //just like I need
就像迈克尔·夏普(Michael Sharp)先前解释的那样:
DateTime.ParseExact
期望您提供的数据为您指定的精确格式。 我的字符串yyMMdd
9/30/2017 12:00:00 AM
与我的格式yyMMdd
不匹配
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.