在表单中,我使用DateTimePicker,如下所示:
With dtp_myDate
.Format = DateTimePickerFormat.Custom
.CustomFormat = "dd.MM.yyyy."
.Value = CType("16.12.2013. 11:30:25.1234", Date)
End With
此外,我可以使用CDate而不是CType,在这两种情况下,date都表示为带有日期和时间的字符串,以毫秒为单位。
我无法改变这一点,因为数据来自(不是我的)数据库。
在具有Windows 7的机器上运行正常但在Windows XP机器上我收到错误异常,并显示此字符串对于日期转换无效。
这可以解决这样的代码在两台机器上都能正常工作吗?
答案 0 :(得分:1)
您想使用DateTime.ParseExact
此处提供了一个示例: http://msdn.microsoft.com/en-us/library/w2sa9yss(v=vs.110).aspx
根据您的需要更改此内容,如下所示:
Dim dateString, format As String
Dim result As Date
Dim provider As CultureInfo = CultureInfo.InvariantCulture
' Parse date-only value with invariant culture.
dateString = "16.12.2013. 11:30:25.1234"
format = "dd.MM.yyyy. hh:mm:ss.ffff"
Try
result = Date.ParseExact(dateString, format, provider)
Debug.WriteLine("{0} converts to {1}", dateString, result.ToString())
dtp_myDate.Value = result
Catch ex As FormatException
Debug.WriteLine("{0} is not in the correct format", dateString)
End Try
输出:
16.12.2013. 11:30:25.1234 converts to 16/12/2013 11:30:25