我有一个如下字符串:
"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
我的错误是什么?
谢谢
答案 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