DateTime.ToString 方法

定义

将当前 DateTime 对象的值转换为其等效的字符串表示形式。Converts the value of the current DateTime object to its equivalent string representation.

重载

ToString(String, IFormatProvider)

使用指定的格式和区域性特定格式信息将当前 DateTime 对象的值转换为它的等效字符串表示形式。Converts the value of the current DateTime object to its equivalent string representation using the specified format and culture-specific format information.

ToString(String)

使用指定的格式和当前区域性的格式约定将当前 DateTime 对象的值转换为它的等效字符串表示形式。Converts the value of the current DateTime object to its equivalent string representation using the specified format and the formatting conventions of the current culture.

ToString(IFormatProvider)

使用指定的区域性特定格式信息将当前 DateTime 对象的值转换为它的等效字符串表示形式。Converts the value of the current DateTime object to its equivalent string representation using the specified culture-specific format information.

ToString()

使用当前的区域性格式约定将当前 DateTime 对象的值转换为它的等效字符串表示形式。Converts the value of the current DateTime object to its equivalent string representation using the formatting conventions of the current culture.

ToString(String, IFormatProvider)

使用指定的格式和区域性特定格式信息将当前 DateTime 对象的值转换为它的等效字符串表示形式。Converts the value of the current DateTime object to its equivalent string representation using the specified format and culture-specific format information.

public:
 virtual System::String ^ ToString(System::String ^ format, IFormatProvider ^ provider);
public string ToString (string format, IFormatProvider provider);
override this.ToString : string * IFormatProvider -> string
Public Function ToString (format As String, provider As IFormatProvider) As String

参数

format
String

标准或自定义日期和时间格式字符串。A standard or custom date and time format string.

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。An object that supplies culture-specific formatting information.

返回

DateTimeformat 指定的当前 provider 对象的值的字符串表示形式。A string representation of value of the current DateTime object as specified by format and provider.

实现

异常

format 的长度为 1,而且它不是为 DateTimeFormatInfo 定义的格式说明符字符之一。The length of format is 1, and it is not one of the format specifier characters defined for DateTimeFormatInfo.

-or- format 不包含有效的自定义格式模式。format does not contain a valid custom format pattern.

日期和时间超出了 provider 所用日历支持的日期范围。The date and time is outside the range of dates supported by the calendar used by provider.

示例

下面的示例使用每个标准日期时间格式字符串来显示四个不同区域性的日期和时间的字符串表示形式。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.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Create an array of all supported standard date and time format specifiers.
      string[] formats = {"d", "D", "f", "F", "g", "G", "m", "o", "r", 
                          "s", "t", "T", "u", "U", "Y"};
      // Create an array of four cultures.                                 
      CultureInfo[] cultures = {CultureInfo.CreateSpecificCulture("de-DE"), 
                                CultureInfo.CreateSpecificCulture("en-US"), 
                                CultureInfo.CreateSpecificCulture("es-ES"), 
                                CultureInfo.CreateSpecificCulture("fr-FR")};
       // Define date to be displayed.
      DateTime dateToDisplay = new DateTime(2008, 10, 1, 17, 4, 32);

      // Iterate each standard format specifier.
      foreach (string formatSpecifier in formats)
      {
         foreach (CultureInfo culture in cultures)
            Console.WriteLine("{0} Format Specifier {1, 10} Culture {2, 40}", 
                              formatSpecifier, culture.Name, 
                              dateToDisplay.ToString(formatSpecifier, culture));
         Console.WriteLine();
      }   
   }
}
// The example displays the following output:
//    d Format Specifier      de-DE Culture                               01.10.2008
//    d Format Specifier      en-US Culture                                10/1/2008
//    d Format Specifier      es-ES Culture                               01/10/2008
//    d Format Specifier      fr-FR Culture                               01/10/2008
//    
//    D Format Specifier      de-DE Culture                Mittwoch, 1. Oktober 2008
//    D Format Specifier      en-US Culture              Wednesday, October 01, 2008
//    D Format Specifier      es-ES Culture         miércoles, 01 de octubre de 2008
//    D Format Specifier      fr-FR Culture                  mercredi 1 octobre 2008
//    
//    f Format Specifier      de-DE Culture          Mittwoch, 1. Oktober 2008 17:04
//    f Format Specifier      en-US Culture      Wednesday, October 01, 2008 5:04 PM
//    f Format Specifier      es-ES Culture   miércoles, 01 de octubre de 2008 17:04
//    f Format Specifier      fr-FR Culture            mercredi 1 octobre 2008 17:04
//    
//    F Format Specifier      de-DE Culture       Mittwoch, 1. Oktober 2008 17:04:32
//    F Format Specifier      en-US Culture   Wednesday, October 01, 2008 5:04:32 PM
//    F Format Specifier      es-ES Culture miércoles, 01 de octubre de 2008 17:04:3
//    F Format Specifier      fr-FR Culture         mercredi 1 octobre 2008 17:04:32
//    
//    g Format Specifier      de-DE Culture                         01.10.2008 17:04
//    g Format Specifier      en-US Culture                        10/1/2008 5:04 PM
//    g Format Specifier      es-ES Culture                         01/10/2008 17:04
//    g Format Specifier      fr-FR Culture                         01/10/2008 17:04
//    
//    G Format Specifier      de-DE Culture                      01.10.2008 17:04:32
//    G Format Specifier      en-US Culture                     10/1/2008 5:04:32 PM
//    G Format Specifier      es-ES Culture                      01/10/2008 17:04:32
//    G Format Specifier      fr-FR Culture                      01/10/2008 17:04:32
//    
//    m Format Specifier      de-DE Culture                               01 Oktober
//    m Format Specifier      en-US Culture                               October 01
//    m Format Specifier      es-ES Culture                               01 octubre
//    m Format Specifier      fr-FR Culture                                1 octobre
//    
//    o Format Specifier      de-DE Culture              2008-10-01T17:04:32.0000000
//    o Format Specifier      en-US Culture              2008-10-01T17:04:32.0000000
//    o Format Specifier      es-ES Culture              2008-10-01T17:04:32.0000000
//    o Format Specifier      fr-FR Culture              2008-10-01T17:04:32.0000000
//    
//    r Format Specifier      de-DE Culture            Wed, 01 Oct 2008 17:04:32 GMT
//    r Format Specifier      en-US Culture            Wed, 01 Oct 2008 17:04:32 GMT
//    r Format Specifier      es-ES Culture            Wed, 01 Oct 2008 17:04:32 GMT
//    r Format Specifier      fr-FR Culture            Wed, 01 Oct 2008 17:04:32 GMT
//    
//    s Format Specifier      de-DE Culture                      2008-10-01T17:04:32
//    s Format Specifier      en-US Culture                      2008-10-01T17:04:32
//    s Format Specifier      es-ES Culture                      2008-10-01T17:04:32
//    s Format Specifier      fr-FR Culture                      2008-10-01T17:04:32
//    
//    t Format Specifier      de-DE Culture                                    17:04
//    t Format Specifier      en-US Culture                                  5:04 PM
//    t Format Specifier      es-ES Culture                                    17:04
//    t Format Specifier      fr-FR Culture                                    17:04
//    
//    T Format Specifier      de-DE Culture                                 17:04:32
//    T Format Specifier      en-US Culture                               5:04:32 PM
//    T Format Specifier      es-ES Culture                                 17:04:32
//    T Format Specifier      fr-FR Culture                                 17:04:32
//    
//    u Format Specifier      de-DE Culture                     2008-10-01 17:04:32Z
//    u Format Specifier      en-US Culture                     2008-10-01 17:04:32Z
//    u Format Specifier      es-ES Culture                     2008-10-01 17:04:32Z
//    u Format Specifier      fr-FR Culture                     2008-10-01 17:04:32Z
//    
//    U Format Specifier      de-DE Culture     Donnerstag, 2. Oktober 2008 00:04:32
//    U Format Specifier      en-US Culture   Thursday, October 02, 2008 12:04:32 AM
//    U Format Specifier      es-ES Culture    jueves, 02 de octubre de 2008 0:04:32
//    U Format Specifier      fr-FR Culture            jeudi 2 octobre 2008 00:04:32
//    
//    Y Format Specifier      de-DE Culture                             Oktober 2008
//    Y Format Specifier      en-US Culture                            October, 2008
//    Y Format Specifier      es-ES Culture                          octubre de 2008
//    Y Format Specifier      fr-FR Culture                             octobre 2008
Imports System.Globalization

Module Example
   Public Sub Main()
      ' Create an array of all supported standard date and time format specifiers.
      Dim formats() As String = {"d", "D", "f", "F", "g", "G", "m", "o", "r", _
                                 "s", "t", "T", "u", "U", "Y"}
      ' Create an array of four cultures.                                 
      Dim cultures() As CultureInfo = {CultureInfo.CreateSpecificCulture("de-DE"), _
                                       CultureInfo.CreateSpecificCulture("en-US"), _
                                       CultureInfo.CreateSpecificCulture("es-ES"), _
                                       CultureInfo.CreateSpecificCulture("fr-FR")}
       ' Define date to be displayed.
      Dim dateToDisplay As Date = #10/1/2008 17:04:32#

      ' Iterate each standard format specifier.
      For Each formatSpecifier As String In formats
         For Each culture As CultureInfo In cultures
            Console.WriteLine("{0} Format Specifier {1, 10} Culture {2, 40}", _
                              formatSpecifier, culture.Name, _
                              dateToDisplay.ToString(formatSpecifier, culture))
         Next
         Console.WriteLine()
      Next                                       
   End Sub
End Module
' The example displays the following output:
'    d Format Specifier      de-DE Culture                               01.10.2008
'    d Format Specifier      en-US Culture                                10/1/2008
'    d Format Specifier      es-ES Culture                               01/10/2008
'    d Format Specifier      fr-FR Culture                               01/10/2008
'    
'    D Format Specifier      de-DE Culture                Mittwoch, 1. Oktober 2008
'    D Format Specifier      en-US Culture              Wednesday, October 01, 2008
'    D Format Specifier      es-ES Culture         miércoles, 01 de octubre de 2008
'    D Format Specifier      fr-FR Culture                  mercredi 1 octobre 2008
'    
'    f Format Specifier      de-DE Culture          Mittwoch, 1. Oktober 2008 17:04
'    f Format Specifier      en-US Culture      Wednesday, October 01, 2008 5:04 PM
'    f Format Specifier      es-ES Culture   miércoles, 01 de octubre de 2008 17:04
'    f Format Specifier      fr-FR Culture            mercredi 1 octobre 2008 17:04
'    
'    F Format Specifier      de-DE Culture       Mittwoch, 1. Oktober 2008 17:04:32
'    F Format Specifier      en-US Culture   Wednesday, October 01, 2008 5:04:32 PM
'    F Format Specifier      es-ES Culture miércoles, 01 de octubre de 2008 17:04:3
'    F Format Specifier      fr-FR Culture         mercredi 1 octobre 2008 17:04:32
'    
'    g Format Specifier      de-DE Culture                         01.10.2008 17:04
'    g Format Specifier      en-US Culture                        10/1/2008 5:04 PM
'    g Format Specifier      es-ES Culture                         01/10/2008 17:04
'    g Format Specifier      fr-FR Culture                         01/10/2008 17:04
'    
'    G Format Specifier      de-DE Culture                      01.10.2008 17:04:32
'    G Format Specifier      en-US Culture                     10/1/2008 5:04:32 PM
'    G Format Specifier      es-ES Culture                      01/10/2008 17:04:32
'    G Format Specifier      fr-FR Culture                      01/10/2008 17:04:32
'    
'    m Format Specifier      de-DE Culture                               01 Oktober
'    m Format Specifier      en-US Culture                               October 01
'    m Format Specifier      es-ES Culture                               01 octubre
'    m Format Specifier      fr-FR Culture                                1 octobre
'    
'    o Format Specifier      de-DE Culture              2008-10-01T17:04:32.0000000
'    o Format Specifier      en-US Culture              2008-10-01T17:04:32.0000000
'    o Format Specifier      es-ES Culture              2008-10-01T17:04:32.0000000
'    o Format Specifier      fr-FR Culture              2008-10-01T17:04:32.0000000
'    
'    r Format Specifier      de-DE Culture            Wed, 01 Oct 2008 17:04:32 GMT
'    r Format Specifier      en-US Culture            Wed, 01 Oct 2008 17:04:32 GMT
'    r Format Specifier      es-ES Culture            Wed, 01 Oct 2008 17:04:32 GMT
'    r Format Specifier      fr-FR Culture            Wed, 01 Oct 2008 17:04:32 GMT
'    
'    s Format Specifier      de-DE Culture                      2008-10-01T17:04:32
'    s Format Specifier      en-US Culture                      2008-10-01T17:04:32
'    s Format Specifier      es-ES Culture                      2008-10-01T17:04:32
'    s Format Specifier      fr-FR Culture                      2008-10-01T17:04:32
'    
'    t Format Specifier      de-DE Culture                                    17:04
'    t Format Specifier      en-US Culture                                  5:04 PM
'    t Format Specifier      es-ES Culture                                    17:04
'    t Format Specifier      fr-FR Culture                                    17:04
'    
'    T Format Specifier      de-DE Culture                                 17:04:32
'    T Format Specifier      en-US Culture                               5:04:32 PM
'    T Format Specifier      es-ES Culture                                 17:04:32
'    T Format Specifier      fr-FR Culture                                 17:04:32
'    
'    u Format Specifier      de-DE Culture                     2008-10-01 17:04:32Z
'    u Format Specifier      en-US Culture                     2008-10-01 17:04:32Z
'    u Format Specifier      es-ES Culture                     2008-10-01 17:04:32Z
'    u Format Specifier      fr-FR Culture                     2008-10-01 17:04:32Z
'    
'    U Format Specifier      de-DE Culture     Donnerstag, 2. Oktober 2008 00:04:32
'    U Format Specifier      en-US Culture   Thursday, October 02, 2008 12:04:32 AM
'    U Format Specifier      es-ES Culture    jueves, 02 de octubre de 2008 0:04:32
'    U Format Specifier      fr-FR Culture            jeudi 2 octobre 2008 00:04:32
'    
'    Y Format Specifier      de-DE Culture                             Oktober 2008
'    Y Format Specifier      en-US Culture                            October, 2008
'    Y Format Specifier      es-ES Culture                          octubre de 2008
'    Y Format Specifier      fr-FR Culture                             octobre 2008

下面的示例演示使用固定 DateTimeFormatInfo 对 @no__t 值进行格式设置的不同方式。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
       */
}

 using System;
 using System.Globalization; 
 
public class MainClass { 
    public static void Main(string[] args)  {
        DateTime dt = DateTime.Now;
        String[] format = {
            "d", "D",
            "f", "F",
            "g", "G",
            "m",
            "r",
            "s",
            "t", "T",
            "u", "U",
            "y",
            "dddd, MMMM dd yyyy",
            "ddd, MMM d \"'\"yy",
            "dddd, MMMM dd",
            "M/yy",
            "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], " :" , 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
    */
    }
}
Option Explicit
Option Strict

Imports System.Globalization

Public Class MainClass
    
    Public Shared Sub Main()
        Dim dt As DateTime = DateTime.Now
        Dim myformat() As String =  {"d", "D", _
                                    "f", "F", _
                                    "g", "G", _
                                    "m", _
                                    "r", _
                                    "s", _
                                    "t", "T", _
                                    "u", "U", _
                                    "y", _
                                    "dddd, MMMM dd yyyy", _
                                    "ddd, MMM d ""'""yy", _
                                    "dddd, MMMM dd", _
                                    "M/yy", _
                                    "dd-MM-yy"}
        Dim mydate As String
        Dim i As Integer
        For i = 0 To myformat.Length - 1
            mydate = dt.ToString(myformat(i), DateTimeFormatInfo.InvariantInfo)
            Console.WriteLine(String.Concat(myformat(i), " :", mydate))
        Next i

    ' 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
    End Sub
End Class

注解

@No__t 参数可以包含单个格式说明符(请参阅标准日期和时间格式字符串)或自定义格式模式(请参阅自定义日期和时间格式字符串)。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). 如果 format @no__t 为-1 或空字符串(""),则使用标准格式说明符 "G"。If format is null or an empty string (""), the standard format specifier, "G", is used.

@No__t 的参数定义与标准格式说明符相对应的模式以及日期和时间组件的符号和名称。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. @No__t 参数可以是以下任何参数:The provider parameter can be any of the following:

  • 一个 @no__t 0 对象,该对象表示要在返回的字符串中反映其格式设置约定的区域性。A CultureInfo object that represents the culture whose formatting conventions are to be reflected in the returned string. @No__t 属性返回的 @no__t 0 对象定义返回的字符串的格式设置。The DateTimeFormatInfo object returned by the CultureInfo.DateTimeFormat property defines the formatting of the returned string.

  • 一个 @no__t 0 对象,该对象定义日期和时间数据的格式。A DateTimeFormatInfo object that defines the format of date and time data.

  • 一个实现 IFormatProvider 接口的自定义对象。A custom object that implements the IFormatProvider interface. GetFormat 方法返回提供格式设置信息的 @no__t 1 对象。Its GetFormat method returns a DateTimeFormatInfo object that provides formatting information.

如果 provider @no__t 为-1,则使用与当前区域性关联的 @no__t。If provider is null, the DateTimeFormatInfo associated with the current culture is used. 有关详细信息,请参阅 CultureInfo.CurrentCultureFor more information, see CultureInfo.CurrentCulture.

调用方说明

@No__t-0 方法返回 provider 参数使用的日历中的日期和时间的字符串表示形式。The ToString(String, IFormatProvider) method returns the string representation of the date and time in the calendar used by the provider parameter. 其日历由 Calendar 属性定义。Its calendar is defined by the Calendar property. 如果当前 DateTime 实例的值早于 MaxSupportedDateTime @no__t 或更高版本,则该方法将引发 @no__t。If the value of the current DateTime instance is earlier than MinSupportedDateTime or later than MaxSupportedDateTime, the method throws an ArgumentOutOfRangeException. 下面的示例进行了这方面的演示。The following example provides an illustration. 它会尝试设置超出 UmAlQuraCalendar 类范围的日期的格式。It attempts to format a date that is outside the range of the UmAlQuraCalendar class.

[!code-csharpSystem.DateTime.ToString.ArgumentOutOfRangeException#4] [!code-vbSystem.DateTime.ToString.ArgumentOutOfRangeException#4][!code-csharpSystem.DateTime.ToString.ArgumentOutOfRangeException#4] [!code-vbSystem.DateTime.ToString.ArgumentOutOfRangeException#4]

另请参阅

ToString(String)

使用指定的格式和当前区域性的格式约定将当前 DateTime 对象的值转换为它的等效字符串表示形式。Converts the value of the current DateTime object to its equivalent string representation using the specified format and the formatting conventions of the current culture.

public:
 System::String ^ ToString(System::String ^ format);
public string ToString (string format);
override this.ToString : string -> string
Public Function ToString (format As String) As String

参数

format
String

标准或自定义日期和时间格式字符串。A standard or custom date and time format string.

返回

DateTime 指定的当前 format 对象的值的字符串表示形式。A string representation of value of the current DateTime object as specified by format.

异常

format 的长度为 1,而且它不是为 DateTimeFormatInfo 定义的格式说明符字符之一。The length of format is 1, and it is not one of the format specifier characters defined for DateTimeFormatInfo.

-or- format 不包含有效的自定义格式模式。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 the current culture.

示例

下面的示例使用每个标准日期和时间格式字符串以及所选的自定义日期和时间格式字符串来显示 DateTime 值的字符串表示形式。The following example uses each of the standard date and time format strings and a selection of custom date and time format strings to display the string representation of a DateTime value. 示例的当前区域性为 en-us。The thread current culture for the example is en-US.

using System;

public class DateToStringExample
{
   public static void Main()
   {
      DateTime dateValue = new DateTime(2008, 6, 15, 21, 15, 07);
      // Create an array of standard format strings.
      string[] standardFmts = {"d", "D", "f", "F", "g", "G", "m", "o", 
                               "R", "s", "t", "T", "u", "U", "y"};
      // Output date and time using each standard format string.
      foreach (string standardFmt in standardFmts)
         Console.WriteLine("{0}: {1}", standardFmt, 
                           dateValue.ToString(standardFmt));
      Console.WriteLine();
      
      // Create an array of some custom format strings.
      string[] customFmts = {"h:mm:ss.ff t", "d MMM yyyy", "HH:mm:ss.f", 
                             "dd MMM HH:mm:ss", @"\Mon\t\h\: M", "HH:mm:ss.ffffzzz" };
      // Output date and time using each custom format string.
      foreach (string customFmt in customFmts)
         Console.WriteLine("'{0}': {1}", customFmt,
                           dateValue.ToString(customFmt));
   }
}
// This example displays the following output to the console:
//       d: 6/15/2008
//       D: Sunday, June 15, 2008
//       f: Sunday, June 15, 2008 9:15 PM
//       F: Sunday, June 15, 2008 9:15:07 PM
//       g: 6/15/2008 9:15 PM
//       G: 6/15/2008 9:15:07 PM
//       m: June 15
//       o: 2008-06-15T21:15:07.0000000
//       R: Sun, 15 Jun 2008 21:15:07 GMT
//       s: 2008-06-15T21:15:07
//       t: 9:15 PM
//       T: 9:15:07 PM
//       u: 2008-06-15 21:15:07Z
//       U: Monday, June 16, 2008 4:15:07 AM
//       y: June, 2008
//       
//       'h:mm:ss.ff t': 9:15:07.00 P
//       'd MMM yyyy': 15 Jun 2008
//       'HH:mm:ss.f': 21:15:07.0
//       'dd MMM HH:mm:ss': 15 Jun 21:15:07
//       '\Mon\t\h\: M': Month: 6
//       'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00
Module DateToStringExample
   Public Sub Main()
      Dim dateValue As Date = #6/15/2008 9:15:07PM#
      ' Create an array of standard format strings.
      Dim standardFmts() As String = {"d", "D", "f", "F", "g", "G", _
                                      "m", "o", "R", "s", "t", "T", _
                                      "u", "U", "y"}
      ' Output date and time using each standard format string.
      For Each standardFmt As String In standardFmts
         Console.WriteLine("{0}: {1}", standardFmt, _
                           dateValue.ToString(standardFmt))
      Next
      Console.WriteLine()
      
      ' Create an array of some custom format strings.
      Dim customFmts() As String = {"h:mm:ss.ff t", "d MMM yyyy", "HH:mm:ss.f", _
                                    "dd MMM HH:mm:ss", "\Mon\t\h\: M", "HH:mm:ss.ffffzzz" }
      ' Output date and time using each custom format string.
      For Each customFmt As String In customFmts
         Console.WriteLine("'{0}': {1}", customFmt, _
                           dateValue.ToString(customFmt))
      Next
   End Sub
End Module
' This example displays the following output to the console:
'       d: 6/15/2008
'       D: Sunday, June 15, 2008
'       f: Sunday, June 15, 2008 9:15 PM
'       F: Sunday, June 15, 2008 9:15:07 PM
'       g: 6/15/2008 9:15 PM
'       G: 6/15/2008 9:15:07 PM
'       m: June 15
'       o: 2008-06-15T21:15:07.0000000
'       R: Sun, 15 Jun 2008 21:15:07 GMT
'       s: 2008-06-15T21:15:07
'       t: 9:15 PM
'       T: 9:15:07 PM
'       u: 2008-06-15 21:15:07Z
'       U: Monday, June 16, 2008 4:15:07 AM
'       y: June, 2008
'       
'       'h:mm:ss.ff t': 9:15:07.00 P
'       'd MMM yyyy': 15 Jun 2008
'       'HH:mm:ss.f': 21:15:07.0
'       'dd MMM HH:mm:ss': 15 Jun 21:15:07
'       '\Mon\t\h\: M': Month: 6
'       'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00

注解

@No__t-0 方法返回特定格式的日期和时间值的字符串表示形式,该格式使用当前区域性的格式设置约定;有关详细信息,请参阅 CultureInfo.CurrentCultureThe ToString(String) method returns the string representation of a date and time value in a specific format that uses the formatting conventions of the current culture; for more information, see CultureInfo.CurrentCulture.

@No__t 的参数应包含单个格式说明符(请参阅标准日期和时间格式字符串)或自定义格式模式(请参阅自定义日期和时间格式字符串),该模式定义返回的字符串的格式。The format parameter should 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) that defines the format of the returned string. 如果 format @no__t 为-1 或空字符串,则使用常规格式说明符 "G"。If format is null or an empty string, the general format specifier, 'G', is used.

此方法的一些用途包括:Some uses of this method include:

  • 获取一个字符串,该字符串以当前区域性的短日期和时间格式显示日期和时间。Getting a string that displays the date and time in the current culture's short date and time format. 为此,请使用 "G" 格式说明符。To do this, you use the "G" format specifier.

  • 获取只包含月份和年份的字符串。Getting a string that contains only the month and year. 为此,请使用 "MM/yyyy" 格式字符串。To do this, you use the "MM/yyyy" format string. 格式字符串使用当前区域性的日期分隔符。The format string uses the current culture's date separator.

  • 获取一个字符串,该字符串包含采用特定格式的日期和时间。Getting a string that contains the date and time in a specific format. 例如,"MM/dd/yyyyHH: MM" 格式字符串以固定格式(例如 "19//03//2013 18:06")显示日期和时间字符串。For example, the "MM/dd/yyyyHH:mm" format string displays the date and time string in a fixed format such as "19//03//2013 18:06". 格式字符串使用 "/" 作为固定日期分隔符,而与区域性特定的设置无关。The format string uses "/" as a fixed date separator regardless of culture-specific settings.

  • 采用可用于序列化日期字符串的紧缩格式获取日期。Getting a date in a condensed format that could be used for serializing a date string. 例如,"yyyyMMdd" 格式字符串显示四位数的年份,后跟两位数的月份和两位数的日期(不含日期分隔符)。For example, the "yyyyMMdd" format string displays a four-digit year followed by a two-digit month and a two-digit day with no date separator.

下面的示例使用这三个格式字符串通过使用 en-us 和 fr-fr 区域性的约定来显示日期和时间值。The following example uses these three format strings to display a date and time value by using the conventions of the en-US and fr-FR cultures.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      String[] formats = { "G", "MM/yyyy", @"MM\/dd\/yyyy HH:mm",
                           "yyyyMMdd" };
      String[] cultureNames = { "en-US", "fr-FR" };
      DateTime date = new DateTime(2015, 8, 18, 13, 31, 17);
      foreach (var cultureName in cultureNames) {
         var culture = new CultureInfo(cultureName);
         CultureInfo.CurrentCulture = culture;
         Console.WriteLine(culture.NativeName);
         foreach (var format in formats)
            Console.WriteLine("   {0}: {1}", format,
                              date.ToString(format));
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//       English (United States)
//          G: 8/18/2015 1:31:17 PM
//          MM/yyyy: 08/2015
//          MM\/dd\/yyyy HH:mm: 08/18/2015 13:31
//          yyyyMMdd: 20150818
//
//       français (France)
//          G: 18/08/2015 13:31:17
//          MM/yyyy: 08/2015
//          MM\/dd\/yyyy HH:mm: 08/18/2015 13:31
//          yyyyMMdd: 20150818
Imports System.Globalization
Imports System.Threading

Public Module Example
   Public Sub Main()
      Dim formats() As String = { "G", "MM/yyyy", "MM\/dd\/yyyy HH:mm",
                                  "yyyyMMdd" }
      Dim cultureNames() As String = { "en-US", "fr-FR" }
      Dim dat As New DateTime(2015, 8, 18, 13, 31, 17)
      For Each cultureName In cultureNames
         Dim culture As New CultureInfo(cultureName)
         CultureInfo.CurrentCulture = culture
         Console.WriteLine(culture.NativeName)
         For Each fmt In formats
            Console.WriteLine("   {0}: {1}", fmt,
                              dat.ToString(fmt))
         Next
         Console.WriteLine()
      Next
   End Sub
End Module
' The example displays the following output:
'       English (United States)
'          G: 8/18/2015 1:31:17 PM
'          MM/yyyy: 08/2015
'          MM\/dd\/yyyy HH:mm: 08/18/2015 13:31
'          yyyyMMdd: 20150818
'
'       français (France)
'          G: 18/08/2015 13:31:17
'          MM/yyyy: 08/2015
'          MM\/dd\/yyyy HH:mm: 08/18/2015 13:31
'          yyyyMMdd: 20150818

调用方说明

@No__t-0 方法返回当前区域性使用的日历中的日期和时间的字符串表示形式。The ToString(String) method returns the string representation of the date and time in the calendar used by the current culture. 如果当前 DateTime 实例的值早于 MaxSupportedDateTime @no__t 或更高版本,则该方法将引发 @no__t。If the value of the current DateTime instance is earlier than MinSupportedDateTime or later than MaxSupportedDateTime, the method throws an ArgumentOutOfRangeException. 下面的示例进行了这方面的演示。The following example provides an illustration. 当当前区域性为希伯来语(以色列)时,它会尝试设置超出 HebrewCalendar 类范围的日期的格式。It attempts to format a date that is outside the range of the HebrewCalendar class when the current culture is Hebrew (Israel).

[!code-csharpSystem.DateTime.ToString.ArgumentOutOfRangeException#3] [!code-vbSystem.DateTime.ToString.ArgumentOutOfRangeException#3][!code-csharpSystem.DateTime.ToString.ArgumentOutOfRangeException#3] [!code-vbSystem.DateTime.ToString.ArgumentOutOfRangeException#3]

另请参阅

ToString(IFormatProvider)

使用指定的区域性特定格式信息将当前 DateTime 对象的值转换为它的等效字符串表示形式。Converts the value of the current DateTime object to its equivalent string representation using the specified culture-specific format information.

public:
 System::String ^ ToString(IFormatProvider ^ provider);
public string ToString (IFormatProvider provider);
override this.ToString : IFormatProvider -> string
Public Function ToString (provider As IFormatProvider) As String

参数

provider
IFormatProvider

一个提供区域性特定的格式设置信息的对象。An object that supplies culture-specific formatting information.

返回

DateTime 指定的当前 provider 对象的值的字符串表示形式。A string representation of value of the current DateTime object as specified by provider.

实现

异常

日期和时间超出了 provider 所用日历支持的日期范围。The date and time is outside the range of dates supported by the calendar used by provider.

示例

下面的示例显示了一个日期和时间的字符串表示形式,该日期和时间使用表示五个不同区域性的 @no__t 0 个对象。The following example displays the string representation of a date and time using CultureInfo objects that represent five different cultures.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      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;
      
         Console.WriteLine("In {0}, {1}", 
                           cultureName, thisDate.ToString(culture));
      }                                            
      }
}
// 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
Imports System.Globalization

Module Example
   Public Sub Main()
      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:00AM#                                            
      
      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

         Console.WriteLine("In {0}, {1}", _
                           cultureName, thisDate.ToString(culture))
      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

注解

当前 DateTime 对象的值是使用常规日期和时间格式说明符("G")进行格式化的,该说明符使用短日期模式和长时间模式设置输出的格式。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.

短日期和长时间模式的格式由 provider 参数定义。The format of the short date and long time pattern is defined by the provider parameter. @No__t 参数可以是以下任何参数:The provider parameter can be any of the following:

  • 一个 @no__t 0 对象,该对象表示要在返回的字符串中反映其格式设置约定的区域性。A CultureInfo object that represents the culture whose formatting conventions are to be reflected in the returned string. @No__t 属性返回的 @no__t 0 对象定义返回的字符串的格式设置。The DateTimeFormatInfo object returned by the CultureInfo.DateTimeFormat property defines the formatting of the returned string.

  • 一个 @no__t 0 对象,该对象定义日期和时间数据的格式。A DateTimeFormatInfo object that defines the format of date and time data.

  • 一个实现 IFormatProvider 接口的自定义对象。A custom object that implements the IFormatProvider interface. GetFormat 方法返回提供格式设置信息的 @no__t 1 对象。Its GetFormat method returns a DateTimeFormatInfo object that provides formatting information.

如果 provider @no__t 为-1,则使用与当前区域性关联的 DateTimeFormatInfo 对象。If provider is null, the DateTimeFormatInfo object associated with the current culture is used. 有关详细信息,请参阅 CultureInfo.CurrentCultureFor more information, see CultureInfo.CurrentCulture.

调用方说明

@No__t-0 方法返回日历中的日期和时间的字符串表示形式,由 provider 参数表示的区域性所用。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. 其日历由 Calendar 属性定义。Its calendar is defined by the Calendar property. 如果当前 DateTime 实例的值早于 MaxSupportedDateTime @no__t 或更高版本,则该方法将引发 @no__t。If the value of the current DateTime instance is earlier than MinSupportedDateTime or later than MaxSupportedDateTime, the method throws an ArgumentOutOfRangeException. 下面的示例进行了这方面的演示。The following example provides an illustration. 它会尝试设置超出 JapaneseCalendar 类范围的日期的格式。It attempts to format a date that is outside the range of the JapaneseCalendar class.

[!code-csharpSystem.DateTime.ToString.ArgumentOutOfRangeException#1] [!code-vbSystem.DateTime.ToString.ArgumentOutOfRangeException#1][!code-csharpSystem.DateTime.ToString.ArgumentOutOfRangeException#1] [!code-vbSystem.DateTime.ToString.ArgumentOutOfRangeException#1]

另请参阅

ToString()

使用当前的区域性格式约定将当前 DateTime 对象的值转换为它的等效字符串表示形式。Converts the value of the current DateTime object to its equivalent string representation using the formatting conventions of the current culture.

public:
 override System::String ^ ToString();
public override string ToString ();
override this.ToString : unit -> string
Public Overrides Function ToString () As String

返回

当前 DateTime 对象的值的字符串表示形式。A string representation of the value of the current DateTime object.

异常

此日期和时间超出了当前区域性所用日历支持的日期范围。The date and time is outside the range of dates supported by the calendar used by the current culture.

示例

下面的示例演示了 ToString() 方法返回的 @no__t 0 值的字符串表示形式如何取决于当前线程的区域性。The following example illustrates how the string representation of a DateTime value returned by the ToString() method depends on the thread current culture. 它将当前线程区域性从 en-us 改为 fr-fr。It changes the current thread culture from en-US to fr-FR to ja-JP. 在每种情况下,都调用 @no__t 的方法,以返回使用该区域性的日期和时间值的字符串表示形式。and in each case calls the ToString() method to return the string representation of a date and time value using that culture.

using System;
using System.Globalization;
using System.Threading;

public class DateToStringExample
{
   public static void Main()
   {
      CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
      DateTime exampleDate = new DateTime(2008, 5, 1, 18, 32, 6);
      
      // Display the date using the current (en-US) culture.
      Console.WriteLine(exampleDate.ToString());

      // Change the current culture to fr-FR and display the date.
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");
      Console.WriteLine(exampleDate.ToString());

      // Change the current culture to ja-JP and display the date.
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ja-JP");
      Console.WriteLine(exampleDate.ToString());
      
      // Restore the original culture
      Thread.CurrentThread.CurrentCulture = currentCulture;
   }
}
// The example displays the following output to the console:
//       5/1/2008 6:32:06 PM
//       01/05/2008 18:32:06
//       2008/05/01 18:32:06
Imports System.Globalization
Imports System.Threading

Module DateToStringExample
   Public Sub Main()
      Dim currentCulture As CultureInfo = Thread.CurrentThread.CurrentCulture
      Dim exampleDate As Date = #05/01/2008 6:32:06PM#
      
      ' Display the date using the current (en-US) culture.
      Console.WriteLine(exampleDate.ToString())

      ' Change the current culture to fr-FR and display the date.
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR")
      Console.WriteLine(exampleDate.ToString())

      ' Change the current culture to ja-JP and display the date.
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("ja-JP")
      Console.WriteLine(exampleDate.ToString())
      
      ' Restore the original culture
      Thread.CurrentThread.CurrentCulture = currentCulture
   End Sub
End Module
' The example displays the following output to the console:
'       5/1/2008 6:32:06 PM
'       01/05/2008 18:32:06
'       2008/05/01 18:32:06

注解

当前 DateTime 对象的值使用常规日期和时间格式说明符("G")进行格式设置。The value of the current DateTime object is formatted using the general date and time format specifier ('G'). 若要使用特定的日期和时间格式说明符来设置其格式,请调用 ToString(String) 方法。To format it using a specific date and time format specifier, call the ToString(String) method. 若要使用特定区域性的常规日期和时间格式说明符("G")对其进行格式化,请调用 ToString(IFormatProvider) 方法。To format it using the general date and time format specifier ('G') for a specific culture, call the ToString(IFormatProvider) method. 若要使用特定的日期和时间格式说明符以及特定区域性的约定对其进行格式化,请调用 ToString(String, IFormatProvider) 方法。To format it using a specific date and time format specifier and the conventions of a specific culture, call the ToString(String, IFormatProvider) method.

此方法使用派生自当前区域性的格式设置信息。This method uses formatting information derived from the current culture. 特别是,它将由 @no__t 属性返回的 DateTimeFormatInfo 对象的 @no__t 0 和 @no__t 属性返回的自定义格式字符串组合在一起。In particular, it combines the custom format strings returned by the ShortDatePattern and LongTimePattern properties of the DateTimeFormatInfo object returned by the Thread.CurrentThread.CurrentCulture.DateTimeFormat property. 有关详细信息,请参阅 CultureInfo.CurrentCultureFor more information, see CultureInfo.CurrentCulture. 使用 ToString 方法的其他重载,可以指定要使用其格式设置的区域性,并定义 @no__t 值的输出模式。Other overloads of the ToString method enable you to specify the culture whose formatting to use and to define the output pattern of the DateTime value.

调用方说明

@No__t-0 方法返回当前区域性使用的日历中的日期和时间的字符串表示形式。The ToString() method returns the string representation of the date and time in the calendar used by the current culture. 如果当前 DateTime 实例的值早于 MaxSupportedDateTime @no__t 或更高版本,则该方法将引发 @no__t。If the value of the current DateTime instance is earlier than MinSupportedDateTime or later than MaxSupportedDateTime, the method throws an ArgumentOutOfRangeException. 下面的示例进行了这方面的演示。The following example provides an illustration. 当当前区域性为阿拉伯语(叙利亚)时,它会尝试设置超出 HijriCalendar 类范围的日期的格式。It attempts to format a date that is outside the range of the HijriCalendar class when the current culture is Arabic (Syria).

[!code-csharpSystem.DateTime.ToString.ArgumentOutOfRangeException#2] [!code-vbSystem.DateTime.ToString.ArgumentOutOfRangeException#2][!code-csharpSystem.DateTime.ToString.ArgumentOutOfRangeException#2] [!code-vbSystem.DateTime.ToString.ArgumentOutOfRangeException#2]

另请参阅

适用于