簡體   English   中英

無法將字符串識別為格式yyMMdd的有效DateTime

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM