![](/img/trans.png)
[英]System.FormatException: String was not recognized as a valid DateTime
[英]System.FormatException: String was not recognized as a valid DateTime - when trying to convert MM/DD/YYYY
我有以下 C# 方法:
DateTime ConvertStringToDate(string dateInString)
{
try {
//string SSD = dateInString;
//DateTime date = Convert.ToDateTime(SSD);
//string strDate = String.Format("{0:yyyy-MM-dd HH:mm:ss.fff}", date);
//return Convert.ToDateTime(strDate);
return DateTime.ParseExact(dateInString, "MM/dd/yyyy", CultureInfo.InvariantCulture);
}
catch (Exception) { }
return DateTime.Today;
}
注釋中的代碼是我之前嘗試過的另一種方式。
我在印度為我在美國的客戶開發一個 ASP.NET WebForms 應用程序。 在其 forms 之一上,我的客戶將在 TextBox 中輸入日期,例如 6/20/2018,格式為 MM/dd/yyyy。
但是在這兩種方式中我都收到了這個錯誤: System.FormatException: 'String was not recognized as a valid DateTime.'
我在 SO 上嘗試了很多解決方案,但沒有一個有效。
return DateTime.ParseExact(dateInString, "M/d/yyyy", CultureInfo.InvariantCulture);
我的回答和Fabulous的區別是我也將dd
縮短為d
因此,如果您的用戶寫的是6/6/2018
它也可以工作
您的日期格式為MM / dd / yyyy,並且您輸入的內容不匹配。 是M / dd / yyyy
根據您的評論,要解決6/1/2018問題,您需要執行以下操作M / d / yyyy
您的格式字符串缺少AM / PM設計器:
return DateTime.ParseExact
(dateInString + " 12:00:00 AM", "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
// Here ---------------------------------------------^
嘗試不與字符串“ AM”串聯
幾天前的7月9日,我遇到了同樣的異常,我只是在0后面加上9來匹配日期格式。
嘗試在您的月份中附加一個0以匹配您日期格式的MM
有時您的系統時間和日期格式與測試格式不同,您可以嘗試更改系統日期和時間格式
如果您想將這種 (01-01-2022) 類型的字符串轉換為日期,請嘗試以下代碼。
DateTime date = DateTime.ParseExact("01-01-2022", "MM-dd-yyyy", CultureInfo.InvariantCulture);
如果您想將這種 (01/01/2022) 類型的字符串轉換為日期,請嘗試以下代碼。
DateTime date = DateTime.ParseExact("01-01-2022", "MM/dd/yyyy", CultureInfo.InvariantCulture);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.