This documentation is archived and is not being maintained.

DateTime::ToString Method (String, IFormatProvider)

Updated: February 2010

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.


IFormattable::ToString(String, IFormatProvider)


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 format is nullptr 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 nullptr, 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

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0




February 2010

Added exception information and the Notes for Callers section.

Customer feedback.

July 2008

Added detail on method behavior; added an example.

Information enhancement.