DateTime::ToString Method (String^, IFormatProvider^)


Converts the value of the current DateTime object to its equivalent string representation using the specified format and culture-specific format information.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

virtual String^ ToString(
	String^ format,
	IFormatProvider^ provider
) sealed


Type: System::String^

A standard or custom date and time format string.

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 format and provider.

Exception Condition

The length of format is 1, and it is not one of the format specifier characters defined for DateTimeFormatInfo.


format does not contain a valid custom format pattern.


The date and time is outside the range of dates supported by the calendar used by provider.

The format parameter can contain either a single format specifier character (see Standard Date and Time Format Strings) or a custom format pattern (see Custom Date and Time Format Strings). If formatis null or an empty string (""), the standard format specifier, "G", is used.

The provider parameter defines the pattern that corresponds to the standard format specifiers, as well as the symbols and names of date and time components. The provider parameter can be any of the following:

If provider is null, the DateTimeFormatInfo associated with the current culture is used. For more information, see CultureInfo::CurrentCulture.

Notes to Callers:

The ToString(String^, IFormatProvider^) method returns the string representation of the date and time in the calendar used 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 UmAlQuraCalendar class.

No code example is currently available or this language may not be supported.

The following example uses each of the standard date time format strings to display the string representation of a date and time for four different cultures.

No code example is currently available or this language may not be supported.

The following example demonstrates different ways of formatting a DateTime value using the invariant DateTimeFormatInfo.

using namespace System;
using namespace System::Globalization;
void main()
   DateTime dt = DateTime::Now;
   array<String^>^format = {L"d",L"D",L"f",L"F",L"g",L"G",L"m",L"r",L"s",L"t",L"T",L"u",L"U",L"y",L"dddd, MMMM dd yyyy",L"ddd, MMM d \"'\"yy",L"dddd, MMMM dd",L"M/yy",L"dd-MM-yy"};
   String^ date;
   for ( int i = 0; i < format->Length; i++ )
      date = dt.ToString( format[ i ], DateTimeFormatInfo::InvariantInfo );
      Console::WriteLine( String::Concat( format[ i ], L" :", date ) );


   /** Output.
       * d :08/17/2000
       * D :Thursday, August 17, 2000
       * f :Thursday, August 17, 2000 16:32
       * F :Thursday, August 17, 2000 16:32:32
       * g :08/17/2000 16:32
       * G :08/17/2000 16:32:32
       * m :August 17
       * r :Thu, 17 Aug 2000 23:32:32 GMT
       * s :2000-08-17T16:32:32
       * t :16:32
       * T :16:32:32
       * u :2000-08-17 23:32:32Z
       * U :Thursday, August 17, 2000 23:32:32
       * y :August, 2000
       * dddd, MMMM dd yyyy :Thursday, August 17 2000
       * ddd, MMM d "'"yy :Thu, Aug 17 '00
       * dddd, MMMM dd :Thursday, August 17
       * M/yy :8/00
       * dd-MM-yy :17-08-00

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top