DateTime.ToString Method (IFormatProvider)
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Converts the value of the current DateTime object to its equivalent string representation using the specified culture-specific format information.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Function ToString ( _
provider As IFormatProvider _
) As String
public string ToString(
IFormatProvider provider
)
Parameters
- provider
Type: System.IFormatProvider
An object that supplies culture-specific formatting information.
Return Value
Type: System.String
A string representation of value of the current DateTime object, as specified by the provider parameter.
Implements
Exceptions
Exception | Condition |
---|---|
ArgumentOutOfRangeException | The date and time is outside the range of dates supported by the calendar used by provider. |
Remarks
The value of the current DateTime object is formatted using the general date and time format specifier ('G'), which formats output using the short date pattern and the long time pattern.
The format of the short date and long time pattern is defined by the provider parameter. The provider parameter can be any of the following:
A CultureInfo object that represents the culture whose formatting conventions are to be reflected in the returned string. The DateTimeFormatInfo object returned by the CultureInfo.DateTimeFormat property defines the formatting of the returned string.
A DateTimeFormatInfo object that defines the format of date and time data.
A custom object that implements the IFormatProvider interface. Its GetFormat method returns a DateTimeFormatInfo object that provides formatting information.
If provider is nulla null reference (Nothing in Visual Basic), the DateTimeFormatInfo object associated with the current culture is used. For more information, see CultureInfo.CurrentCulture.
Platform Notes
Silverlight for Windows Phone
Silverlight for Windows Phone does not return the correct string for Russian dates. For example, 15.Июнь.2000 is returned instead of 15.июня.2000.
Notes to Callers
The ToString(IFormatProvider) method returns the string representation of the date and time in the calendar used by the culture represented by the provider parameter. Its calendar is defined by the Calendar property. If the value of the current DateTime instance is earlier than Calendar.MinSupportedDateTime or later than Calendar.MaxSupportedDateTime, the method throws an ArgumentOutOfRangeException. The following example provides an illustration. It attempts to format a date that is outside the range of the JapaneseCalendar class.
Imports System.Globalization
Module Example
Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
Dim jaJP As New CultureInfo("ja-JP")
jaJP.DateTimeFormat.Calendar = New JapaneseCalendar()
Dim date1 As Date = #1/1/1867#
Try
outputBlock.Text &= date1.ToString(jaJP) & vbCrLf
Catch e As ArgumentOutOfRangeException
outputBlock.Text += String.Format("{0:d} is earlier than {1:d} or later than {2:d}", _
date1, _
jaJP.DateTimeFormat.Calendar.MinSupportedDateTime, _
jaJP.DateTimeFormat.Calendar.MaxSupportedDateTime) & vbCrLf
End Try
End Sub
End Module
' The example displays the following output:
' 1/1/1867 is earlier than 9/8/1868 or later than 12/31/9999
using System;
using System.Globalization;
public class Example
{
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
CultureInfo jaJP = new CultureInfo("ja-JP");
jaJP.DateTimeFormat.Calendar = new JapaneseCalendar();
DateTime date1 = new DateTime(1867, 1, 1);
try
{
outputBlock.Text += date1.ToString(jaJP) + "\n";
}
catch (ArgumentOutOfRangeException)
{
outputBlock.Text += String.Format("{0:d} is earlier than {1:d} or later than {2:d}",
date1,
jaJP.DateTimeFormat.Calendar.MinSupportedDateTime,
jaJP.DateTimeFormat.Calendar.MaxSupportedDateTime) + "\n";
}
}
}
// The example displays the following output:
// 1/1/1867 is earlier than 9/8/1868 or later than 12/31/9999 }
Examples
The following example displays the string representation of a date and time using CultureInfo objects that represent five different cultures.
Imports System.Globalization
Module Example
Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
Dim cultures() As CultureInfo = {CultureInfo.InvariantCulture, _
New CultureInfo("en-us"), _
New CultureInfo("fr-fr"), _
New CultureInfo("de-DE"), _
New CultureInfo("es-ES"), _
New CultureInfo("ja-JP")}
Dim thisDate As Date = #5/1/2009 9:00:00 AM#
For Each culture As CultureInfo In cultures
Dim cultureName As String
If String.IsNullOrEmpty(culture.Name) Then
cultureName = culture.NativeName
Else
cultureName = culture.Name
End If
outputBlock.Text += String.Format("In {0}, {1}", _
cultureName, thisDate.ToString(culture)) & vbCrLf
Next
End Sub
End Module
' The example produces the following output:
' In Invariant Language (Invariant Country), 05/01/2009 09:00:00
' In en-US, 5/1/2009 9:00:00 AM
' In fr-FR, 01/05/2009 09:00:00
' In de-DE, 01.05.2009 09:00:00
' In es-ES, 01/05/2009 9:00:00
' In ja-JP, 2009/05/01 9:00:00
using System;
using System.Globalization;
public class Example
{
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
CultureInfo[] cultures = new CultureInfo[] {CultureInfo.InvariantCulture,
new CultureInfo("en-us"),
new CultureInfo("fr-fr"),
new CultureInfo("de-DE"),
new CultureInfo("es-ES"),
new CultureInfo("ja-JP")};
DateTime thisDate = new DateTime(2009, 5, 1, 9, 0, 0);
foreach (CultureInfo culture in cultures)
{
string cultureName;
if (string.IsNullOrEmpty(culture.Name))
cultureName = culture.NativeName;
else
cultureName = culture.Name;
outputBlock.Text += String.Format("In {0}, {1}",
cultureName, thisDate.ToString(culture)) + "\n";
}
}
}
// The example produces the following output:
// In Invariant Language (Invariant Country), 05/01/2009 09:00:00
// In en-US, 5/1/2009 9:00:00 AM
// In fr-FR, 01/05/2009 09:00:00
// In de-DE, 01.05.2009 09:00:00
// In es-ES, 01/05/2009 9:00:00
// In ja-JP, 2009/05/01 9:00:00
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