2012-04-17 47 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) 
相关问题