![](/img/trans.png)
[英]Convert String to DateTime in C# - String was not recognized as a valid 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.