2015-08-03 67 views
-1

我是新來的c#如何將我的輸入字符串轉換爲DateTime。將字符串轉換爲日期時間C#

_toDate = 5/22/2015 

我cannt使用

DateTime.ParseExact(_toDate, "yyyy-MM-dd", null); 

或者

Convert.ToDateTime(_toDate) 

拋出一個異常字符串未被識別爲有效的DateTime。

注意:字符串的縮寫與上面的縮寫相同。

欣賞您的回覆

+3

'yyyy-MM-dd'似乎不符合你的日期。 – Magnus

+0

可能重複[字符串未被識別爲有效的日期時間「格式dd/MM/yyyy」](http://stackoverflow.com/questions/2193012/string-was-not-recognized-as-a-valid-datetime -format-dd-mm-yyyy) –

回答

9

顯然,您的字符串和格式不匹配。

來自documentation;

將指定的日期和時間字符串表示形式轉換爲其等效日期時間的 。字符串表示的格式必須 與指定格式完全匹配

您需要使用M/dd/yyyy與具有/DateSeparatorInvariantCulture文化。

string _toDate = "5/22/2015"; 
DateTime myDate = DateTime.ParseExact(_toDate, "M/dd/yyyy", CultureInfo.InvariantCulture); 

當您使用null作爲IFormatProvider,它的螺紋爲您CurrentCulture,如果你CurrentCulture沒有/作爲DateSeparator,你會得到FormatException因爲/ custom format specifier具有特殊的含義與當前的文化取代我或提供培養日期分離器

+0

@Downvoter照顧至少發表評論,以便我可以看到我可能會錯的地方? –

+0

這適用於給定的具體情況,但它更可能是OP需要使用'M/d/yyyy'。這種格式不太可能會填滿整天,而不是一個月。另外我不是下選舉人。 – juharr

+0

@juharr這適用於特定情況,因爲這是我們的唯一情況。你有一點,'d'說明符解析它,但由於OP試圖用'dd'說明符解析它,所以有可能單日數字_may_具有前導零。 –

相關問題