我似乎无法弄清楚为什么我的代码中出现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
,具体取决于所选的日期。
有什么建议吗?
答案 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
不知道我错过了它:(