[英]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.