Convert.ToDateTime Method (String, IFormatProvider)
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared Function ToDateTime ( _
value As String, _
provider As IFormatProvider _
) As DateTime
public static DateTime ToDateTime(
string value,
IFormatProvider provider
)
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.DateTime
A DateTime equivalent to the value of value.
-or-
A DateTime equivalent to DateTime.MinValue if value is nulla null reference (Nothing in Visual Basic).
Exceptions
Exception | Condition |
---|---|
FormatException | value is not a properly formatted date and time string. |
Remarks
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 nulla null reference (Nothing in Visual Basic), 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.
Examples
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
using System;
using System.Globalization;
public class Example
{
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
outputBlock.FontFamily = new System.Windows.Media.FontFamily("Courier New");
outputBlock.Text += String.Format("{0,-18}{1,-12}{2}\n\n",
"Date String", "Culture", "Result");
string[] cultureNames = { "en-US", "ru-RU","ja-JP" };
string[] dateStrings = { "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.
foreach (string cultureName in cultureNames)
{
CultureInfo culture = new CultureInfo(cultureName);
// Parse each date using the designated culture.
foreach (string dateStr in dateStrings)
{
DateTime dateTimeValue;
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}\n",
dateStr, cultureName, dateTimeValue);
}
catch (FormatException e) {
outputBlock.Text += String.Format("{0,-18}{1,-12}{2}\n",
dateStr, cultureName, e.GetType().Name);
}
}
outputBlock.Text += "\n";
}
}
}
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
See Also