簡體   English   中英

System.FormatException:字符串未被識別為有效的日期時間 - 嘗試轉換 MM/DD/YYYY 時

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

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