【问题标题】:How can I get a datetime from this string '01/25/1955'?如何从这个字符串 '01/25/1955' 中获取日期时间?
【发布时间】:2012-04-29 01:43:34
【问题描述】:

我有以下代码:

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 'String not Recognized as datetime',在新代码中,我得到“System.FormatException = {”日历 System.Globalization 不支持字符串表示的 DateTime。公历。"}"

编辑:已回答。不敢相信我忽略了这一点。

【问题讨论】:

    标签: asp.net datetime type-conversion


    【解决方案1】:

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

    试试这个:"MM/dd/yyyy hh:mm:ss"

    【讨论】:

    • 天哪。我讨厌使用其他人的代码。不敢相信我没有注意到这一点。
    【解决方案2】:

    我认为你的格式字符串有误。从你的例子来看,你想要"MM/dd/yyyy hh:mm:ss"

    【讨论】:

    • 谢谢。不敢相信我忽略了这一点。知道为什么这不起作用吗? 'dtDoM = Convert.ToDateTime(txtMarriageDate.Text)"
    • 如果输入正确,它应该可以工作。通常,您需要验证输入字符串的格式是否与您认为的完全一致,这就是我更喜欢ParseExact 方法的原因。
    【解决方案3】:

    你把日期和月份颠倒了。这将起作用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-01
      • 1970-01-01
      • 2016-05-13
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      • 2015-05-11
      • 1970-01-01
      相关资源
      最近更新 更多