2013-12-16 140 views
0

在表單我使用的DateTimePicker這樣的:CDATE在Windows XP

With dtp_myDate 
    .Format = DateTimePickerFormat.Custom 
    .CustomFormat = "dd.MM.yyyy." 
    .Value = CType("16.12.2013. 11:30:25.1234", Date) 
End With 

而且我可以用它代替CTYPE凡在這兩種情況下的日期表示爲字符串,日期和時間毫秒CDATE。
由於數據來自(不是我的)數據庫,我不能改變這一點。

在Windows 7的機器上工作正常,但在Windows XP機器上,我收到錯誤異常,並顯示此字符串對於日期轉換無效的消息。

這可以解決這樣的代碼在兩臺機器上工作沒有錯誤,以及如何?

回答

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 
+0

感謝馬特爲非常詳細的解釋。示例工作如預期。 –