簡體   English   中英

c#DateTime轉換錯誤-無法將字符串識別為有效的DateTime

[英]c# DateTime convert error - String was not recognized as a valid DateTime

嘗試將字符串轉換為DateTime時,我不斷收到錯誤消息。

Error:
String was not recognized as a valid DateTime.

我要轉換的字符串是從DataTable獲取的。 奇怪的是,如果我僅使用日期本身並將其放在字符串中,就沒有錯誤。 僅當我從表格中獲取日期時才會出現錯誤。

這是給我帶來麻煩的日期:2008-04-20T07:00:00Z

這是我的代碼:

string dateString = "2008-04-20T07:00:00Z";

foreach (DataRow dr in tblData.Rows)
{
        string tblDate = dr["DOCUMENTDATE"].ToString();
        string format = "yyyy-MM-ddTHH:mm:ssZ";

        DateTime convertDate = DateTime.ParseExact(tblDate, format, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);
        //DateTime convertDate = DateTime.Parse(dateString);
        dr["DOCUMENTDATE"] = convertDate.ToString();
    }

我查找了其他帖子,並嘗試了Parse,ParseExact,Convert.ToDateTime,但仍然收到相同的錯誤。

編輯1:

dr [“ DOCUMENTDATE”]的數據類型是字符串。 填充表的數據是從轉換為xml的json中獲取的。 然后,我使用了XMLtoDataTable。

我究竟做錯了什么?

在這里,嘗試一下。 我認為問題在於您沒有提供可識別的格式:

相關提琴: https : //dotnetfiddle.net/u1IoNX

    string format = "yyyy-MM-ddTHH:mm:ssZ";
    string tblDate = dr["DOCUMENTDATE"].ToString(format);


    DateTime convertDate = DateTime.ParseExact(tblDate, format, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);
    dr["DOCUMENTDATE"] = convertDate.ToString(format);

編輯

從文檔中:

https://msdn.microsoft.com/en-us/library/ms131038(v=vs.110).aspx

DateTime.ParseExact(String,String,IFormatProvider,DateTimeStyles)方法解析日期的字符串表示形式,該日期的格式必須為format參數定義的格式。

如果使用上面的datestring示例,則不會出現任何錯誤。 您的日期在調試器中可能看起來正確,但是我認為它的格式不完全符合您指定的格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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