我回来了“:”(没有空格),“:”(两边的空格),“:”(前导空格)或“:”(尾随空格)来自sql的一些数据。我想仅在用户使用正确格式“01:21:01”时才向用户显示日期。这将被设置为时间格式的日期选择器。我下面有一些代码,但它对我不起作用:
Dim D As Date
IF ds.Tables(0).Rows(1)("Pond1SampleTime").ToString() = "" Or Date.TryParseExact(ds.Tables(0).Rows(1)("Pond1SampleTime").ToString(), "hh:mm", Nothing, Globalization.DateTimeStyles.NoCurrentDateDefault, D) Then
Ponds1SampleTimePicker.Value = "1/1/1753 12:00:00 AM"
Else
Ponds1SampleTimePicker.Value = SelDat + " " + ds.Tables(0).Rows(1)("Pond1SampleTime").ToString()
End If
任何想法我做错了什么?
答案 0 :(得分:1)
如果您只想解析字符串的小时,分钟和秒,则可以使用TimeSpan.TryParse。
但是,查看代码时,您似乎正在尝试解析完整日期并设置日期选择器值。在这种情况下,使用DateTime.TryParse来尝试解析selData + [your string]
Dim ts As TimeSpan
Dim d As Date
Dim hhmmss as string =ds.Tables(0).Rows(1)("Pond1SampleTime").ToString()
Dim ds as string = SelDat & " " & hhmmss
' Parse with TimeSpan
If TimeSpan.TryParse(hhmmss, ts) Then
Ponds1SampleTimePicker.Value = ds
Else
Ponds1SampleTimePicker.Value = "1/1/1753 12:00:00 AM"
End if
' Parse with DateTime
If DateTime.TryParse(ds, d) Then
Ponds1SampleTimePicker.Value = ds
End if