2016-02-16 78 views
-3

我知道有很多相關的問題,但這是別的。字符串未被識別爲日期時間的有效分析字符串

ExceptionMessage 「:」 字符串未被識別爲有效的DateTime 「」 ExceptionType。 「:」 System.FormatException 「 」堆棧跟蹤「:」 在System.DateTimeParse.ParseExact(一個String,字符串格式,的DateTimeFormatInfo dtfi,DateTimeStyles風格)在System.DateTime.ParseExact(一個String,字符串格式,提供的IFormatProvider)

我的代碼

string bornstring = request.BornDate; 
var borndate = DateTime.ParseExact(bornstring, "dd.MM.yyyy", CultureInfo.InvariantCulture); 

這不起作用:

string bornstring = request.BornDate; 

但這個工程:

string bornstring = "10.10.1959"; 

,但我100%肯定request.BornDate是String類型的完全一樣。我把調試點和檢查100次。沒有空格或其他字符。完全一樣 enter image description here

+5

有你發佈的代碼和調試器屏幕快照之間的差異。在發佈的代碼中,您使用'CultureInfo.InvariantCulture',但圖像顯示爲null。 –

+1

有多個Unicode字符,看起來像點。或者字符串中可能還有其他不可打印的字符。你有沒有檢查有問題的確切代碼點? – Ani

+1

將「request.BornDate.ToCharArray()」放入調試器的監視表達式中。您現在還會使用ParseExact()失敗的不可打印字符。 –

回答

1

只有阿尼和漢斯接近它。

是的截圖可能沒有invariant文化,但重點仍然存在。它不是問題。 問題在於@Ani編寫了Unicode字符。 儘管我的ajax請求將它發送爲「10.10.1959」,但在路上還有一些附加內容。

解決方案

string bornstring = new String(request.BornDate 
         .ToCharArray() 
         .Where(c => c <= 255) 
         .ToArray() 
        ); 
相關問題