Convert.ToDateTime Method (String, IFormatProvider)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Converts the specified String representation of a number to an equivalent DateTime using the specified culture-specific formatting information.
Assembly: mscorlib (in mscorlib.dll)
'Declaration Public Shared Function ToDateTime ( _ value As String, _ provider As IFormatProvider _ ) As DateTime
Parameters
- value
- Type: System.String
A String containing a date and time to convert.
- provider
- Type: System.IFormatProvider
An IFormatProvider interface implementation that supplies culture-specific formatting information.
Return Value
Type: System.DateTimeA DateTime equivalent to the value of value.
-or-
A DateTime equivalent to DateTime.MinValue if value is Nothing.
| Exception | Condition |
|---|---|
| FormatException | value is not a properly formatted date and time string. |
The return value is the result of invoking the DateTime.Parse method on value.
provider is an IFormatProvider instance that obtains a DateTimeFormatInfo object. The DateTimeFormatInfo object provides culture-specific information about the format of value. If provider is Nothing, the DateTimeFormatInfo for the current culture is used.
If you prefer not to handle an exception if the conversion fails, you can call the DateTime.TryParse method instead. It returns a Boolean value that indicates whether the conversion succeeded or failed.
The following example converts String representations of date values with the Convert.ToDateTime(String, IFormatProvider) method, using an IFormatProvider object.
Imports System.Globalization Module Example Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock) outputBlock.FontFamily = New FontFamily("Courier New") outputBlock.Text += String.Format("{0,-18}{1,-12}{2}", "Date String", "Culture", "Result") + vbCrLf outputBlock.Text += vbCrLf Dim cultureNames() As String = { "en-US", "ru-RU","ja-JP" } Dim dateStrings() As String = { "01/02/09", "2009/02/03", "01/2009/03", _ "01/02/2009", "21/02/09", "01/22/09", _ "01/02/23" } ' Iterate each culture name in the array. For Each cultureName As String In cultureNames Dim culture As CultureInfo = New CultureInfo(cultureName) ' Parse each date using the designated culture. For Each dateStr As String In dateStrings Dim dateTimeValue As DateTime Try dateTimeValue = Convert.ToDateTime(dateStr, culture) ' Display the date and time in a fixed format. outputBlock.Text += String.Format("{0,-18}{1,-12}{2:yyyy-MMM-dd}", _ dateStr, cultureName, dateTimeValue) + vbCrLf Catch e As FormatException outputBlock.Text += String.Format("{0,-18}{1,-12}{2}", _ dateStr, cultureName, e.GetType().Name) + vbCrLf End Try Next outputBlock.Text += vbCrLf Next End Sub End Module ' This example displays the following output: ' The example displays the following output: ' Date String Culture Result ' ' 01/02/09 en-US 2009-Jan-02 ' 2009/02/03 en-US 2009-Feb-03 ' 01/2009/03 en-US 2009-Jan-03 ' 01/02/2009 en-US 2009-Jan-02 ' 21/02/09 en-US FormatException ' 01/22/09 en-US 2009-Jan-22 ' 01/02/23 en-US 2023-Jan-02 ' ' 01/02/09 ru-RU 2009-Feb-01 ' 2009/02/03 ru-RU 2009-Feb-03 ' 01/2009/03 ru-RU 2009-Jan-03 ' 01/02/2009 ru-RU 2009-Feb-01 ' 21/02/09 ru-RU 2009-Feb-21 ' 01/22/09 ru-RU FormatException ' 01/02/23 ru-RU 2023-Feb-01 ' ' 01/02/09 ja-JP 2001-Feb-09 ' 2009/02/03 ja-JP 2009-Feb-03 ' 01/2009/03 ja-JP 2009-Jan-03 ' 01/02/2009 ja-JP 2009-Jan-02 ' 21/02/09 ja-JP 2021-Feb-09 ' 01/22/09 ja-JP FormatException ' 01/02/23 ja-JP 2001-Feb-23