Reputation: 4655
In the form I use DateTimePicker like this:
With dtp_myDate
.Format = DateTimePickerFormat.Custom
.CustomFormat = "dd.MM.yyyy."
.Value = CType("16.12.2013. 11:30:25.1234", Date)
End With
Also I may use CDate instead of CType where in both cases date is expressed as string with date and time with milliseconds.
I can't change this since data comes from (not mine) database.
On machine with windows 7 that work OK but on windows XP machine I get error exception with message that this string is not valid for Date conversion.
Can this be be solved that such code work on both machines without error and how?
Upvotes: 0
Views: 107
Reputation: 27342
You want to use DateTime.ParseExact
An example is provided here: http://msdn.microsoft.com/en-us/library/w2sa9yss(v=vs.110).aspx
Changing this to your needs as follows:
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
Output:
16.12.2013. 11:30:25.1234 converts to 16/12/2013 11:30:25
Upvotes: 1