2016-10-04 84 views
1

我不明白爲什麼我的字符串值不斷拋出一個異常,應該是一個有效的字符串。我在格式"30/09/2016 14:55:00"(稱爲myDate)的字符串日期和曾嘗試以下讓它成datetime格式:DateTime.parse字符串未被識別

DateTime.ParseExact(myDate, "dd/MM/yyyy HH:mm:ss", null); 
DateTime.ParseExact(myDate, "dd/MM/yyyy HH:mm:ss", CultureInfo.CurrentCulture); 
DateTime.Parse(myDate); 

我看不到的地方我已經錯了,是不是我」錯過了?

編輯:

的指明MyDate

enter image description here

電流值保持在解析被稱爲 enter image description here

例外 enter image description here

同樣的情況下,也適用於所有其他版本ns將字符串解析爲DateTime

+0

我也一直在尋找在此前的答案中,所有這些都指出上述沒有成功 – Novastorm

+0

那麼你會得到什麼例外,它說什麼?一切適用於我... –

+0

當我執行第二個它的作品。你說'myDate'是你的100%嗎? –

回答

1

刪除引號的問題是,你的字符串有額外的",然後當你分析它拋出一個異常。你的"30/09/2016 14:55:00"串實際上是\""30/09/2016 14:55:00\""

取出\"然後解析:

string myDate = "\"30/09/2016 14:55:00\""; 
var result = DateTime.ParseExact(myDate.Replace("\"",""), "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture); 

或者是因爲它總是在字符串的兩端可以使用.Trim方法

1

看起來您的字符串中有多餘的不需要的雙引號。

試試這個,看看它是否工作:

var date = DateTime.ParseExact(myDate.Trim('\"'), "dd/MM/yyyy HH:mm:ss", CultureInfo.CurrentCulture); 
1

您字符串包含額外的報價,你應該叫DateTime.Parse之前刪除。你可以通過調用

myDate = myDate.Trim('"'); 
DateTime.ParseExact(myDate, "dd/MM/yyyy HH:mm:ss", null); 
+0

將'null'用作'IFormatProvider' _might_會很危險因爲它意味着「使用CurrentCulture'設置」,所以OP的CurrentCulture可能不會使用'/'作爲'DateSeparator'和/或':'作爲'TimeSeparator',在這種情況下,你的代碼會拋出'FormatException'。最好指定一個_proper_(也許'InvariantCulture')文化設置來防止這種情況。 –

相關問題