字符串未被识别为格式为yyMMdd的有效DateTime

时间:2017-11-20 17:54:47

标签: c# datetime

我有一个如下字符串:

"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);

比diplay:

dt.ToString("yyMMdd");
  

错误消息:字符串未被识别为有效的DateTime   格式化yyMMdd

我的错误是什么?

谢谢

3 个答案:

答案 0 :(得分:3)

ParseExact用于解析以特定格式输入的字符串。要显示字符串,请将格式字符串传递给ToString方法:

var evan = dataRow["ValueDate"].ToString("yyMMdd");

答案 1 :(得分:1)

9/30/2017 12:00:00 AM期望您提供的数据采用您指定的EXACT格式。您的字符串yyMMdd与您的格式DateTime.Parse不符。因此,请尝试仅使用DateTime dt = DateTime.ParseExact(evan,"M/dd/yyyy HH:mm:ss tt",CultureInfo.InvariantCulture);` ,或使您的格式与数据匹配。像

这样的东西
dt.ToString("yyMMdd");

然后你应该可以<input type="file">

答案 2 :(得分:1)

在从海报收集英特尔后,我成功地理解并解决了我的错误:

在仔细咨询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
像迈克尔斯利普先前解释过的那样:

DateTime.ParseExact期望您提供的数据采用您指定的EXACT格式。我的字符串9/30/2017 12:00:00 AM与我的格式yyMMdd

不匹配