2012-04-17 125 views
0

我有以下代碼:如何從字符串'01/25/1955'獲取日期時間?

Dim dtDoM As Nullable(Of DateTime) 
If (txtMarriageDate.Text.Trim = "") Then 
      dtDoM = Nothing 
     Else 

      dtDoM = DateTime.ParseExact(txtMarriageDate.Text.Trim + " 00:00:00", "dd/MM/yyyy hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture) 
      'dtDoM = Convert.ToDateTime(txtMarriageDate.Text) 
     End If 

在註釋掉部分我得到的出現FormatException「字符串未被識別爲日期時間」,並在新的代碼我收到「System.FormatException = {」日期時間代表在日曆中不支持該字符串System.Globalization.GregorianCalendar。「}」

編輯:已回答。我不能相信我忽略了這一點。

回答

1

您的日期(01/25/1955)採用MM/dd/yyyy格式,您在格式字符串中使用dd/MM/yyyy

嘗試使用這樣的:"MM/dd/yyyy hh:mm:ss"

+0

哦,我的。我討厭與其他人的代碼合作。簡直不敢相信我沒注意到。 – tsdexter 2012-04-17 17:26:38

1

我想你錯了格式字符串。通過你的例子來判斷你想要"MM/dd/yyyy hh:mm:ss"

+0

謝謝。我不能相信我忽略了這一點。任何想法爲什麼這不起作用? 'dtDoM = Convert.ToDateTime(txtMarriageDate.Text)「 – tsdexter 2012-04-17 17:27:41

+0

如果輸入正確,它應該已經起作用了。通常情況下,您需要驗證輸入字符串的格式與您的想法完全相同,這就是爲什麼我更喜歡' ParseExact'方法。 – mgnoonan 2012-04-17 17:30:49

1

你的日日逆轉。這將工作:

dtDoM = DateTime.ParseExact(txtMarriageDate.Text.Trim + " 00:00:00", "MM/dd/yyyy hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture) 
相關問題