2010-07-26 61 views
1

我已經使用了一個文本框以DD-MM-YYYY格式存儲日期,並且由於我使用了SQL服務器,我用它從文本框中獲取值,然後將其放入DateTime dt類型的變量中DateTime.ParseExact格式錯誤

DateTime dt = DateTime.ParseExact(TextBox10.Text,"MM-DD-YYYY",CultureInfo.InvariantCulture); 

我得到格式規範的錯誤,我經歷了許多文件去,但仍無法得到我要去的地方錯了

這個我使用C#和ADO.net 請任何人都可以糾正我?

+0

它仍然說,「MM-dd-YYYY」不是一個有效的日期時間:( – 2010-07-27 11:08:24

回答

1

它看起來像你混合了DD和MM。請嘗試以下:

DateTime dt = DateTime.ParseExact(TextBox10.Text,"dd-MM-yyyy",CultureInfo.InvariantCulture); 

請注意,我將「DD」更改爲「dd」!

UPDATE:

好了,我改「YYYY」爲「YYYY」,跑到下面的代碼,它成功地解析:

DateTime dt = DateTime.ParseExact("28-01-2010", "dd-MM-yyyy", provider); 

如果用戶真的被傳遞日期的格式「dd-MM-yyyy」這應該適合你。請記住,第二個字符串與您在數據庫中存儲的任何格式無關。它只與ParseExact中第一個字符串參數的格式有關。 HTH。

+0

我要求用戶輸入(dd-mm-yyyy),但sql將它存儲爲(MM-DD-YYYY) 所以我使用它..我想然後區分大小寫的部分我將不得不請看看 – 2010-07-27 06:57:19

+0

嗨Nagaraj,閱讀我的更新。我仍然認爲這是一個問題,用戶如何輸入日期和格式,你期望他們在解析時。 – 2010-07-27 15:03:00

+0

也請注意,dd意味着以下格式:28, 10,0 1等。要特別注意「01」的例子。它預計一個兩位數的日子,即使是1-9 ...也是一個月。 – 2010-07-27 15:04:56

1

試試這個

DateTime.ParseExact("12-12-2010", "MM-dd-yyyy", System.Globalization.CultureInfo.InvariantCulture) 

照顧日期格式字符串套管。 「dd」可以不同於「DD」

+0

輸入將從文本框:( – 2010-07-27 06:57:52

+0

格式也沒有工作......它仍然說,「MM-dd- YYYY「不是有效的日期時間:( – 2010-07-27 11:08:03

0

如上所述,日期格式字符串區分大小寫。

但是,您確定要使用DateTime.ParseExact而不是DateTime.Parse嗎?

+0

)要求用戶輸入(dd-mm-yyyy),但sql將它存儲爲(MM-DD-YYYY),所以我用它..我想那麼區分大小寫的部分我會必須看看 – 2010-07-27 06:58:29