DateTime字符串转换错误

时间:2017-03-14 10:04:43

标签: asp.net vb.net date datetime

我似乎无法弄清楚为什么我的代码中出现DateTime错误?

传递字符串时出现的错误是

  

从字符串转换" dd / MM / yyyy:00"输入'日期'无效

由此执行日期和时间解析,如下所示

If IsDate(dateEnd) Then
    dateStartTime = If(IsTime(dateEndTime), dateEndTime, "00:00")
    blog.DateEnd = String.Format("{0} {1}:00", dateEnd, dateEndTime)
Else
    blog.DateEnd = Nothing
End If

日期Date.TryParseExact

Private Function IsDate(ByVal dateString As String) As Boolean
    Dim output As Boolean = False
    Dim dateFormat As String = "dd/MM/yyyy"
    If Date.TryParseExact(dateString.Trim, dateFormat, New CultureInfo("en-GB"), DateTimeStyles.None, Nothing) Then
        output = True
    End If
    Return output
End Function

时间分析

Private Function IsTime(ByVal timeString As String) As Boolean
    Dim timeRegex As New Regex("([0-1]\d|2[0-3]):([0-5]\d)")
    Return timeRegex.IsMatch(timeString)
End Function

它通过所有检查,然后产生错误,如此行

blog.DateEnd = String.Format("{0} {1}:00", dateEnd, dateEndTime)

传入的字符串例如是13/03/2017 :00,具体取决于所选的日期。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

解决了这个问题。我在这一行上犯了错误,应该是dateEndTime而不是dateStartTime

dateStartTime = If(IsTime(dateEndTime), dateEndTime, "00:00")

所以最终代码是

If IsDate(dateEnd) Then
    dateEndTime = If(IsTime(dateEndTime), dateEndTime, "00:00")
    blog.DateEnd = String.Format("{0} {1}:00", dateEnd, dateEndTime)
Else
    blog.DateEnd = Nothing
End If

不知道我错过了它:(