DateTimeFormatInfo.GetAllDateTimePatterns 方法

定义

返回可用于对日期和时间值进行格式设置的标准模式。Returns the standard patterns in which date and time values can be formatted.

重载

GetAllDateTimePatterns()

返回可用于对日期和时间值进行格式设置的所有标准模式。Returns all the standard patterns in which date and time values can be formatted.

GetAllDateTimePatterns(Char)

返回可使用指定标准格式字符串对日期和时间值进行格式设置的所有模式。Returns all the patterns in which date and time values can be formatted using the specified standard format string.

GetAllDateTimePatterns()

返回可用于对日期和时间值进行格式设置的所有标准模式。Returns all the standard patterns in which date and time values can be formatted.

public:
 cli::array <System::String ^> ^ GetAllDateTimePatterns();
public string[] GetAllDateTimePatterns ();
member this.GetAllDateTimePatterns : unit -> string[]
Public Function GetAllDateTimePatterns () As String()

返回

String[]

一个数组,包含可以对日期和时间值进行格式化的标准模式。An array that contains the standard patterns in which date and time values can be formatted.

示例

下面的示例显示固定区域性的日期和时间格式字符串,以及在将该格式字符串用于格式化特定日期时生成的结果字符串。The following example displays the date and time format strings for the invariant culture, as well as the result string that is produced when that format string is used to format a particular date.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      DateTime date = new DateTime(2014, 8, 28, 12, 28, 30);
      DateTimeFormatInfo invDTF = new DateTimeFormatInfo();
      String[] formats = invDTF.GetAllDateTimePatterns();

      Console.WriteLine("{0,-40} {1}\n", "Pattern", "Result String");
      foreach (var fmt in formats)
         Console.WriteLine("{0,-40} {1}", fmt, date.ToString(fmt));
   }
}
// The example displays the following output:
//    Pattern                                  Result String
//
//    MM/dd/yyyy                               08/28/2014
//    yyyy-MM-dd                               2014-08-28
//    dddd, dd MMMM yyyy                       Thursday, 28 August 2014
//    dddd, dd MMMM yyyy HH:mm                 Thursday, 28 August 2014 12:28
//    dddd, dd MMMM yyyy hh:mm tt              Thursday, 28 August 2014 12:28 PM
//    dddd, dd MMMM yyyy H:mm                  Thursday, 28 August 2014 12:28
//    dddd, dd MMMM yyyy h:mm tt               Thursday, 28 August 2014 12:28 PM
//    dddd, dd MMMM yyyy HH:mm:ss              Thursday, 28 August 2014 12:28:30
//    MM/dd/yyyy HH:mm                         08/28/2014 12:28
//    MM/dd/yyyy hh:mm tt                      08/28/2014 12:28 PM
//    MM/dd/yyyy H:mm                          08/28/2014 12:28
//    MM/dd/yyyy h:mm tt                       08/28/2014 12:28 PM
//    yyyy-MM-dd HH:mm                         2014-08-28 12:28
//    yyyy-MM-dd hh:mm tt                      2014-08-28 12:28 PM
//    yyyy-MM-dd H:mm                          2014-08-28 12:28
//    yyyy-MM-dd h:mm tt                       2014-08-28 12:28 PM
//    MM/dd/yyyy HH:mm:ss                      08/28/2014 12:28:30
//    yyyy-MM-dd HH:mm:ss                      2014-08-28 12:28:30
//    MMMM dd                                  August 28
//    MMMM dd                                  August 28
//    yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK   2014-08-28T12:28:30.0000000
//    yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK   2014-08-28T12:28:30.0000000
//    ddd, dd MMM yyyy HH':'mm':'ss 'GMT'      Thu, 28 Aug 2014 12:28:30 GMT
//    ddd, dd MMM yyyy HH':'mm':'ss 'GMT'      Thu, 28 Aug 2014 12:28:30 GMT
//    yyyy'-'MM'-'dd'T'HH':'mm':'ss            2014-08-28T12:28:30
//    HH:mm                                    12:28
//    hh:mm tt                                 12:28 PM
//    H:mm                                     12:28
//    h:mm tt                                  12:28 PM
//    HH:mm:ss                                 12:28:30
//    yyyy'-'MM'-'dd HH':'mm':'ss'Z'           2014-08-28 12:28:30Z
//    dddd, dd MMMM yyyy HH:mm:ss              Thursday, 28 August 2014 12:28:30
//    yyyy MMMM                                2014 August
//    yyyy MMMM                                2014 August
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim date1 As Date = #08/28/2014 12:28:30PM#
      Dim invDTF As New DateTimeFormatInfo()
      Dim formats() As String = invDTF.GetAllDateTimePatterns()

      Console.WriteLine("{0,-40} {1}", "Pattern", "Result String")
      Console.WriteLine()
      For Each fmt In formats
         Console.WriteLine("{0,-40} {1}", fmt, date1.ToString(fmt))
      Next
   End Sub
End Module
' The example displays the following output:
'    Pattern                                  Result String
'
'    MM/dd/yyyy                               08/28/2014
'    yyyy-MM-dd                               2014-08-28
'    dddd, dd MMMM yyyy                       Thursday, 28 August 2014
'    dddd, dd MMMM yyyy HH:mm                 Thursday, 28 August 2014 12:28
'    dddd, dd MMMM yyyy hh:mm tt              Thursday, 28 August 2014 12:28 PM
'    dddd, dd MMMM yyyy H:mm                  Thursday, 28 August 2014 12:28
'    dddd, dd MMMM yyyy h:mm tt               Thursday, 28 August 2014 12:28 PM
'    dddd, dd MMMM yyyy HH:mm:ss              Thursday, 28 August 2014 12:28:30
'    MM/dd/yyyy HH:mm                         08/28/2014 12:28
'    MM/dd/yyyy hh:mm tt                      08/28/2014 12:28 PM
'    MM/dd/yyyy H:mm                          08/28/2014 12:28
'    MM/dd/yyyy h:mm tt                       08/28/2014 12:28 PM
'    yyyy-MM-dd HH:mm                         2014-08-28 12:28
'    yyyy-MM-dd hh:mm tt                      2014-08-28 12:28 PM
'    yyyy-MM-dd H:mm                          2014-08-28 12:28
'    yyyy-MM-dd h:mm tt                       2014-08-28 12:28 PM
'    MM/dd/yyyy HH:mm:ss                      08/28/2014 12:28:30
'    yyyy-MM-dd HH:mm:ss                      2014-08-28 12:28:30
'    MMMM dd                                  August 28
'    MMMM dd                                  August 28
'    yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK   2014-08-28T12:28:30.0000000
'    yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK   2014-08-28T12:28:30.0000000
'    ddd, dd MMM yyyy HH':'mm':'ss 'GMT'      Thu, 28 Aug 2014 12:28:30 GMT
'    ddd, dd MMM yyyy HH':'mm':'ss 'GMT'      Thu, 28 Aug 2014 12:28:30 GMT
'    yyyy'-'MM'-'dd'T'HH':'mm':'ss            2014-08-28T12:28:30
'    HH:mm                                    12:28
'    hh:mm tt                                 12:28 PM
'    H:mm                                     12:28
'    h:mm tt                                  12:28 PM
'    HH:mm:ss                                 12:28:30
'    yyyy'-'MM'-'dd HH':'mm':'ss'Z'           2014-08-28 12:28:30Z
'    dddd, dd MMMM yyyy HH:mm:ss              Thursday, 28 August 2014 12:28:30
'    yyyy MMMM                                2014 August
'    yyyy MMMM                                2014 August

该示例通过DateTimeFormatInfo调用DateTimeFormatInfo构造函数来实例化表示固定区域性的对象。The example instantiates a DateTimeFormatInfo object that represents the invariant culture by calling the DateTimeFormatInfo constructor. 它还可以InvariantInfo从属性DateTimeFormatInfo中检索表示固定区域性的。It could also retrieve a DateTimeFormatInfo that represents the invariant culture from the InvariantInfo property.

注解

此方法返回一个数组,该数组包含与标准格式字符串相对应的所有自定义格式字符串。This method returns an array that contains all custom format strings that correspond to standard format strings. 请参阅标准日期和时间格式字符串,获取标准格式字符串的列表。See Standard Date and Time Format Strings for a list of the standard format strings.

可以在格式设置操作中使用GetAllDateTimePatterns方法返回的数组中的自定义格式字符串。You can use the custom format strings in the array returned by the GetAllDateTimePatterns method in formatting operations. 但是,如果您这样做,则ParseTryParse方法始终无法成功分析在该格式设置操作中返回的日期和时间值的字符串表示形式。However, if you do, the string representation of a date and time value returned in that formatting operation cannot always be parsed successfully by the Parse and TryParse methods. 因此,不能假定GetAllDateTimePatterns方法返回的自定义格式字符串可用于往返日期和时间值。Therefore, you cannot assume that the custom format strings returned by the GetAllDateTimePatterns method can be used to round-trip date and time values. 以下示例阐释了此问题。The following example illustrates this problem. 它检索DateTimeFormatInfo包含意大利(意大利)区域性的格式设置信息的对象。It retrieves a DateTimeFormatInfo object that contains formatting information for the Italy (Italian) culture. 它将由GetAllDateTimePatterns()方法返回的数组中的每个自定义格式字符串DateTime.ToString(String)传递给方法,以创建日期和时间的字符串表示形式。It passes each custom format string in the array returned by the GetAllDateTimePatterns() method to the DateTime.ToString(String) method to create the string representation of a date and time. 然后,此示例通过调用DateTime.TryParse(String, DateTime)方法尝试分析此值。This example then attempts to parse this value by calling the DateTime.TryParse(String, DateTime) method. 如示例的输出所示,某些自定义格式字符串不生成成功往返的日期和时间值。As the output from the example shows, some of the custom format strings do not produce a date and time value that successfully round-trips.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      CultureInfo culture = CultureInfo.CreateSpecificCulture("it-IT");
      DateTime date1 = new DateTime(2011, 02, 01, 7, 30, 45, 0);
      DateTime date2;
      int total = 0;
      int noRoundTrip = 0;
      
      foreach (var fmt in culture.DateTimeFormat.GetAllDateTimePatterns()) {
         total += 1;
         if (! DateTime.TryParse(date1.ToString(fmt), out date2)) {
            noRoundTrip++;
            Console.WriteLine("Unable to parse {0:" + fmt + "} (format '{1}')", 
                              date1, fmt);
         }             
      }
      Console.WriteLine("\nUnable to round-trip {0} of {1} format strings.",
                        noRoundTrip, total);
                        
   }
}
// The example displays the following output:
//    Unable to parse Tuesday 1 February 2011 7.30 (format 'dddd d MMMM yyyy H.mm')
//    Unable to parse Tuesday 1 February 2011 07.30 (format 'dddd d MMMM yyyy HH.mm')
//    Unable to parse 1-Feb-11 7.30 (format 'd-MMM-yy H.mm')
//    Unable to parse 1-Feb-11 07.30 (format 'd-MMM-yy HH.mm')
//    Unable to parse 1 February 2011 7.30 (format 'd MMMM yyyy H.mm')
//    Unable to parse 1 February 2011 07.30 (format 'd MMMM yyyy HH.mm')
//    Unable to parse Tuesday 1 February 2011 7.30.45 (format 'dddd d MMMM yyyy H.mm.ss')
//    Unable to parse Tuesday 1 February 2011 07.30.45 (format 'dddd d MMMM yyyy HH.mm.ss')
//    Unable to parse 1-Feb-11 7.30.45 (format 'd-MMM-yy H.mm.ss')
//    Unable to parse 1-Feb-11 07.30.45 (format 'd-MMM-yy HH.mm.ss')
//    Unable to parse 1 February 2011 7.30.45 (format 'd MMMM yyyy H.mm.ss')
//    Unable to parse 1 February 2011 07.30.45 (format 'd MMMM yyyy HH.mm.ss')
//    Unable to parse 01/02/2011 7.30 (format 'dd/MM/yyyy H.mm')
//    Unable to parse 01/02/2011 07.30 (format 'dd/MM/yyyy HH.mm')
//    Unable to parse 01/Feb/2011 7.30 (format 'dd/MMM/yyyy H.mm')
//    Unable to parse 01/Feb/2011 07.30 (format 'dd/MMM/yyyy HH.mm')
//    Unable to parse 01/02/11 7.30 (format 'dd/MM/yy H.mm')
//    Unable to parse 01/02/11 07.30 (format 'dd/MM/yy HH.mm')
//    Unable to parse 01.2.11 7.30 (format 'dd.M.yy H.mm')
//    Unable to parse 01.2.11 07.30 (format 'dd.M.yy HH.mm')
//    Unable to parse 1/2/11 7.30 (format 'd/M/yy H.mm')
//    Unable to parse 1/2/11 07.30 (format 'd/M/yy HH.mm')
//    Unable to parse 2011-02-01 7.30 (format 'yyyy-MM-dd H.mm')
//    Unable to parse 2011-02-01 07.30 (format 'yyyy-MM-dd HH.mm')
//    Unable to parse 01/02/2011 7.30.45 (format 'dd/MM/yyyy H.mm.ss')
//    Unable to parse 01/02/2011 07.30.45 (format 'dd/MM/yyyy HH.mm.ss')
//    Unable to parse 01/Feb/2011 7.30.45 (format 'dd/MMM/yyyy H.mm.ss')
//    Unable to parse 01/Feb/2011 07.30.45 (format 'dd/MMM/yyyy HH.mm.ss')
//    Unable to parse 01/02/11 7.30.45 (format 'dd/MM/yy H.mm.ss')
//    Unable to parse 01/02/11 07.30.45 (format 'dd/MM/yy HH.mm.ss')
//    Unable to parse 01.2.11 7.30.45 (format 'dd.M.yy H.mm.ss')
//    Unable to parse 01.2.11 07.30.45 (format 'dd.M.yy HH.mm.ss')
//    Unable to parse 1/2/11 7.30.45 (format 'd/M/yy H.mm.ss')
//    Unable to parse 1/2/11 07.30.45 (format 'd/M/yy HH.mm.ss')
//    Unable to parse 2011-02-01 7.30.45 (format 'yyyy-MM-dd H.mm.ss')
//    Unable to parse 2011-02-01 07.30.45 (format 'yyyy-MM-dd HH.mm.ss')
//    Unable to parse Tuesday 1 February 2011 7.30.45 (format 'dddd d MMMM yyyy H.mm.ss')
//    Unable to parse Tuesday 1 February 2011 07.30.45 (format 'dddd d MMMM yyyy HH.mm.ss')
//    Unable to parse 1-Feb-11 7.30.45 (format 'd-MMM-yy H.mm.ss')
//    Unable to parse 1-Feb-11 07.30.45 (format 'd-MMM-yy HH.mm.ss')
//    Unable to parse 1 February 2011 7.30.45 (format 'd MMMM yyyy H.mm.ss')
//    Unable to parse 1 February 2011 07.30.45 (format 'd MMMM yyyy HH.mm.ss')
//    
//    Unable to round-trip 42 of 98 format strings.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture("it-IT")
      Dim date1 = New DateTime(2011, 02, 01, 7, 30, 45, 0)
      Dim date2 As DateTime
      Dim total, noRoundTrip As Integer
      
      For Each fmt In culture.DateTimeFormat.GetAllDateTimePatterns()
         total += 1
         If Not DateTime.TryParse(date1.ToString(fmt), date2)
            noRoundTrip += 1
            Console.WriteLine("Unable to parse {0:" + fmt + "} (format '{1}')", 
                              date1, fmt)
         End If             
      Next
      Console.WriteLine()
      Console.WriteLine("Unable to round-trip {0} of {1} format strings.",
                        noRoundTrip, total)
   End Sub
End Module
' The example displays the following output:
'    Unable to parse Tuesday 1 February 2011 7.30 (format 'dddd d MMMM yyyy H.mm')
'    Unable to parse Tuesday 1 February 2011 07.30 (format 'dddd d MMMM yyyy HH.mm')
'    Unable to parse 1-Feb-11 7.30 (format 'd-MMM-yy H.mm')
'    Unable to parse 1-Feb-11 07.30 (format 'd-MMM-yy HH.mm')
'    Unable to parse 1 February 2011 7.30 (format 'd MMMM yyyy H.mm')
'    Unable to parse 1 February 2011 07.30 (format 'd MMMM yyyy HH.mm')
'    Unable to parse Tuesday 1 February 2011 7.30.45 (format 'dddd d MMMM yyyy H.mm.ss')
'    Unable to parse Tuesday 1 February 2011 07.30.45 (format 'dddd d MMMM yyyy HH.mm.ss')
'    Unable to parse 1-Feb-11 7.30.45 (format 'd-MMM-yy H.mm.ss')
'    Unable to parse 1-Feb-11 07.30.45 (format 'd-MMM-yy HH.mm.ss')
'    Unable to parse 1 February 2011 7.30.45 (format 'd MMMM yyyy H.mm.ss')
'    Unable to parse 1 February 2011 07.30.45 (format 'd MMMM yyyy HH.mm.ss')
'    Unable to parse 01/02/2011 7.30 (format 'dd/MM/yyyy H.mm')
'    Unable to parse 01/02/2011 07.30 (format 'dd/MM/yyyy HH.mm')
'    Unable to parse 01/Feb/2011 7.30 (format 'dd/MMM/yyyy H.mm')
'    Unable to parse 01/Feb/2011 07.30 (format 'dd/MMM/yyyy HH.mm')
'    Unable to parse 01/02/11 7.30 (format 'dd/MM/yy H.mm')
'    Unable to parse 01/02/11 07.30 (format 'dd/MM/yy HH.mm')
'    Unable to parse 01.2.11 7.30 (format 'dd.M.yy H.mm')
'    Unable to parse 01.2.11 07.30 (format 'dd.M.yy HH.mm')
'    Unable to parse 1/2/11 7.30 (format 'd/M/yy H.mm')
'    Unable to parse 1/2/11 07.30 (format 'd/M/yy HH.mm')
'    Unable to parse 2011-02-01 7.30 (format 'yyyy-MM-dd H.mm')
'    Unable to parse 2011-02-01 07.30 (format 'yyyy-MM-dd HH.mm')
'    Unable to parse 01/02/2011 7.30.45 (format 'dd/MM/yyyy H.mm.ss')
'    Unable to parse 01/02/2011 07.30.45 (format 'dd/MM/yyyy HH.mm.ss')
'    Unable to parse 01/Feb/2011 7.30.45 (format 'dd/MMM/yyyy H.mm.ss')
'    Unable to parse 01/Feb/2011 07.30.45 (format 'dd/MMM/yyyy HH.mm.ss')
'    Unable to parse 01/02/11 7.30.45 (format 'dd/MM/yy H.mm.ss')
'    Unable to parse 01/02/11 07.30.45 (format 'dd/MM/yy HH.mm.ss')
'    Unable to parse 01.2.11 7.30.45 (format 'dd.M.yy H.mm.ss')
'    Unable to parse 01.2.11 07.30.45 (format 'dd.M.yy HH.mm.ss')
'    Unable to parse 1/2/11 7.30.45 (format 'd/M/yy H.mm.ss')
'    Unable to parse 1/2/11 07.30.45 (format 'd/M/yy HH.mm.ss')
'    Unable to parse 2011-02-01 7.30.45 (format 'yyyy-MM-dd H.mm.ss')
'    Unable to parse 2011-02-01 07.30.45 (format 'yyyy-MM-dd HH.mm.ss')
'    Unable to parse Tuesday 1 February 2011 7.30.45 (format 'dddd d MMMM yyyy H.mm.ss')
'    Unable to parse Tuesday 1 February 2011 07.30.45 (format 'dddd d MMMM yyyy HH.mm.ss')
'    Unable to parse 1-Feb-11 7.30.45 (format 'd-MMM-yy H.mm.ss')
'    Unable to parse 1-Feb-11 07.30.45 (format 'd-MMM-yy HH.mm.ss')
'    Unable to parse 1 February 2011 7.30.45 (format 'd MMMM yyyy H.mm.ss')
'    Unable to parse 1 February 2011 07.30.45 (format 'd MMMM yyyy HH.mm.ss')
'    
'    Unable to round-trip 42 of 98 format strings.

若要分析可以用许多预定义的自定义格式表示的日期和时间的字符串表示形式,请调用以下方法之一:To parse the string representation of a date and time that can be expressed in a number of predefined custom formats, call one of the following methods:

GetAllDateTimePatterns方法返回的数组中的自定义格式字符串取决于DateTimeFormatInfo对象为其提供格式设置信息的区域性的当前日历。The custom format strings in the array returned by the GetAllDateTimePatterns method depends on the current calendar of the culture for which the DateTimeFormatInfo object supplies formatting information. 如果日历发生更改,则此方法返回的数组也会更改。If the calendar changes, the array returned by this method also changes.

另请参阅

GetAllDateTimePatterns(Char)

返回可使用指定标准格式字符串对日期和时间值进行格式设置的所有模式。Returns all the patterns in which date and time values can be formatted using the specified standard format string.

public:
 cli::array <System::String ^> ^ GetAllDateTimePatterns(char format);
public string[] GetAllDateTimePatterns (char format);
member this.GetAllDateTimePatterns : char -> string[]
Public Function GetAllDateTimePatterns (format As Char) As String()

参数

format
Char

标准格式字符串。A standard format string.

返回

String[]

一个数组,它包含可使用指定格式字符串对日期和时间值进行格式设置的标准模式。An array containing the standard patterns in which date and time values can be formatted using the specified format string.

异常

format 不是有效的标准格式字符串。format is not a valid standard format string.

示例

下面的示例显示了当前日历的日期和时间模式。The following example displays the date and time patterns for the current calendar.

#using <System.dll>

using namespace System;
using namespace System::Globalization;
public ref class SamplesDateTimeFormatInfo
{
public:
   static void Main()
   {
      
      // Creates a new DateTimeFormatinfo.
      DateTimeFormatInfo^ myDtfi = gcnew DateTimeFormatInfo;
      
      // Gets and prints all the patterns
      array<String^>^myPatternsArray = myDtfi->GetAllDateTimePatterns();
      Console::WriteLine(  "ALL the patterns:" );
      PrintIndexAndValues( myPatternsArray );
      
      // Gets and prints the pattern(s) associated with some of the format characters.
      myPatternsArray = myDtfi->GetAllDateTimePatterns( 'd' );
      Console::WriteLine(  "The patterns for 'd':" );
      PrintIndexAndValues( myPatternsArray );
      myPatternsArray = myDtfi->GetAllDateTimePatterns( 'D' );
      Console::WriteLine(  "The patterns for 'D':" );
      PrintIndexAndValues( myPatternsArray );
      myPatternsArray = myDtfi->GetAllDateTimePatterns( 'f' );
      Console::WriteLine(  "The patterns for 'f':" );
      PrintIndexAndValues( myPatternsArray );
      myPatternsArray = myDtfi->GetAllDateTimePatterns( 'F' );
      Console::WriteLine(  "The patterns for 'F':" );
      PrintIndexAndValues( myPatternsArray );
      myPatternsArray = myDtfi->GetAllDateTimePatterns( 'r' );
      Console::WriteLine(  "The patterns for 'r':" );
      PrintIndexAndValues( myPatternsArray );
      myPatternsArray = myDtfi->GetAllDateTimePatterns( 'R' );
      Console::WriteLine(  "The patterns for 'R':" );
      PrintIndexAndValues( myPatternsArray );
   }

    public:
       static void PrintIndexAndValues( array<String^>^myArray )  {
       int i = 0;
       for each ( String^ s in myArray )
           Console::WriteLine( "\t[{0}]:\t{1}", i++, s );
       Console::WriteLine();
    }
};

int main()
{
   SamplesDateTimeFormatInfo::Main();
}

/* 
This code produces the following output.

ALL the patterns:
        [0]:    MM/dd/yyyy
        [1]:    dddd, dd MMMM yyyy
        [2]:    dddd, dd MMMM yyyy HH:mm
        [3]:    dddd, dd MMMM yyyy hh:mm tt
        [4]:    dddd, dd MMMM yyyy H:mm
        [5]:    dddd, dd MMMM yyyy h:mm tt
        [6]:    dddd, dd MMMM yyyy HH:mm:ss
        [7]:    MM/dd/yyyy HH:mm
        [8]:    MM/dd/yyyy hh:mm tt
        [9]:    MM/dd/yyyy H:mm
        [10]:   MM/dd/yyyy h:mm tt
        [11]:   MM/dd/yyyy HH:mm:ss
        [12]:   MMMM dd
        [13]:   MMMM dd
        [14]:   ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
        [15]:   ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
        [16]:   yyyy'-'MM'-'dd'T'HH':'mm':'ss
        [17]:   HH:mm
        [18]:   hh:mm tt
        [19]:   H:mm
        [20]:   h:mm tt
        [21]:   HH:mm:ss
        [22]:   yyyy'-'MM'-'dd HH':'mm':'ss'Z'
        [23]:   dddd, dd MMMM yyyy HH:mm:ss
        [24]:   yyyy MMMM
        [25]:   yyyy MMMM

The patterns for 'd':
        [0]:    MM/dd/yyyy

The patterns for 'D':
        [0]:    dddd, dd MMMM yyyy

The patterns for 'f':
        [0]:    dddd, dd MMMM yyyy HH:mm
        [1]:    dddd, dd MMMM yyyy hh:mm tt
        [2]:    dddd, dd MMMM yyyy H:mm
        [3]:    dddd, dd MMMM yyyy h:mm tt

The patterns for 'F':
        [0]:    dddd, dd MMMM yyyy HH:mm:ss

The patterns for 'r':
        [0]:    ddd, dd MMM yyyy HH':'mm':'ss 'GMT'

The patterns for 'R':
        [0]:    ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
*/
 using System;
 using System.Globalization;
 public class SamplesDateTimeFormatInfo  {
 
    public static void Main()  {
 
       // Creates a new DateTimeFormatinfo.
       DateTimeFormatInfo myDtfi = new DateTimeFormatInfo();
 
       // Gets and prints all the patterns.
       String[] myPatternsArray = myDtfi.GetAllDateTimePatterns();
       Console.WriteLine( "ALL the patterns:" );
       PrintIndexAndValues( myPatternsArray );
 
       // Gets and prints the pattern(s) associated with some of the format characters.
       myPatternsArray = myDtfi.GetAllDateTimePatterns('d');
       Console.WriteLine( "The patterns for 'd':" );
       PrintIndexAndValues( myPatternsArray );
 
       myPatternsArray = myDtfi.GetAllDateTimePatterns('D');
       Console.WriteLine( "The patterns for 'D':" );
       PrintIndexAndValues( myPatternsArray );
 
       myPatternsArray = myDtfi.GetAllDateTimePatterns('f');
       Console.WriteLine( "The patterns for 'f':" );
       PrintIndexAndValues( myPatternsArray );
 
       myPatternsArray = myDtfi.GetAllDateTimePatterns('F');
       Console.WriteLine( "The patterns for 'F':" );
       PrintIndexAndValues( myPatternsArray );
 
       myPatternsArray = myDtfi.GetAllDateTimePatterns('r');
       Console.WriteLine( "The patterns for 'r':" );
       PrintIndexAndValues( myPatternsArray );
 
       myPatternsArray = myDtfi.GetAllDateTimePatterns('R');
       Console.WriteLine( "The patterns for 'R':" );
       PrintIndexAndValues( myPatternsArray );
    }
 
    public static void PrintIndexAndValues( String[] myArray )  {
       int i = 0;
       foreach ( String s in myArray )
          Console.WriteLine( "\t[{0}]:\t{1}", i++, s );
       Console.WriteLine();
    }
 }


/* 
This code produces the following output.

ALL the patterns:
        [0]:    MM/dd/yyyy
        [1]:    dddd, dd MMMM yyyy
        [2]:    dddd, dd MMMM yyyy HH:mm
        [3]:    dddd, dd MMMM yyyy hh:mm tt
        [4]:    dddd, dd MMMM yyyy H:mm
        [5]:    dddd, dd MMMM yyyy h:mm tt
        [6]:    dddd, dd MMMM yyyy HH:mm:ss
        [7]:    MM/dd/yyyy HH:mm
        [8]:    MM/dd/yyyy hh:mm tt
        [9]:    MM/dd/yyyy H:mm
        [10]:   MM/dd/yyyy h:mm tt
        [11]:   MM/dd/yyyy HH:mm:ss
        [12]:   MMMM dd
        [13]:   MMMM dd
        [14]:   ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
        [15]:   ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
        [16]:   yyyy'-'MM'-'dd'T'HH':'mm':'ss
        [17]:   HH:mm
        [18]:   hh:mm tt
        [19]:   H:mm
        [20]:   h:mm tt
        [21]:   HH:mm:ss
        [22]:   yyyy'-'MM'-'dd HH':'mm':'ss'Z'
        [23]:   dddd, dd MMMM yyyy HH:mm:ss
        [24]:   yyyy MMMM
        [25]:   yyyy MMMM

The patterns for 'd':
        [0]:    MM/dd/yyyy

The patterns for 'D':
        [0]:    dddd, dd MMMM yyyy

The patterns for 'f':
        [0]:    dddd, dd MMMM yyyy HH:mm
        [1]:    dddd, dd MMMM yyyy hh:mm tt
        [2]:    dddd, dd MMMM yyyy H:mm
        [3]:    dddd, dd MMMM yyyy h:mm tt

The patterns for 'F':
        [0]:    dddd, dd MMMM yyyy HH:mm:ss

The patterns for 'r':
        [0]:    ddd, dd MMM yyyy HH':'mm':'ss 'GMT'

The patterns for 'R':
        [0]:    ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
*/

Imports System.Globalization

Public Class SamplesDateTimeFormatInfo    
    
    Public Shared Sub Main()
        
        ' Creates a new DateTimeFormatinfo.
        Dim myDtfi As New DateTimeFormatInfo()
        
        ' Gets and prints all the patterns.
        Dim myPatternsArray As String() = myDtfi.GetAllDateTimePatterns()
        Console.WriteLine("ALL the patterns:")
        PrintIndexAndValues(myPatternsArray)
        
        ' Gets and prints the pattern(s) associated with some of the format characters.
        myPatternsArray = myDtfi.GetAllDateTimePatterns("d"c)
        Console.WriteLine("The patterns for 'd':")
        PrintIndexAndValues(myPatternsArray)
        
        myPatternsArray = myDtfi.GetAllDateTimePatterns("D"c)
        Console.WriteLine("The patterns for 'D':")
        PrintIndexAndValues(myPatternsArray)
        
        myPatternsArray = myDtfi.GetAllDateTimePatterns("f"c)
        Console.WriteLine("The patterns for 'f':")
        PrintIndexAndValues(myPatternsArray)
        
        myPatternsArray = myDtfi.GetAllDateTimePatterns("F"c)
        Console.WriteLine("The patterns for 'F':")
        PrintIndexAndValues(myPatternsArray)
        
        myPatternsArray = myDtfi.GetAllDateTimePatterns("r"c)
        Console.WriteLine("The patterns for 'r':")
        PrintIndexAndValues(myPatternsArray)
        
        myPatternsArray = myDtfi.GetAllDateTimePatterns("R"c)
        Console.WriteLine("The patterns for 'R':")
        PrintIndexAndValues(myPatternsArray)
    End Sub
    
    
    Public Shared Sub PrintIndexAndValues(myArray() As String)
        Dim i As Integer = 0
        Dim s As String
        For Each s In  myArray
            Console.WriteLine(ControlChars.Tab + "[{0}]:" + ControlChars.Tab _
               + "{1}", i, s)
            i += 1
        Next s
        Console.WriteLine()
    End Sub
End Class


' This code produces the following output.
'
' ALL the patterns:
' 	[0]:	MM/dd/yyyy
' 	[1]:	dddd, dd MMMM yyyy
' 	[2]:	dddd, dd MMMM yyyy HH:mm
' 	[3]:	dddd, dd MMMM yyyy hh:mm tt
' 	[4]:	dddd, dd MMMM yyyy H:mm
' 	[5]:	dddd, dd MMMM yyyy h:mm tt
' 	[6]:	dddd, dd MMMM yyyy HH:mm:ss
' 	[7]:	MM/dd/yyyy HH:mm
' 	[8]:	MM/dd/yyyy hh:mm tt
' 	[9]:	MM/dd/yyyy H:mm
' 	[10]:	MM/dd/yyyy h:mm tt
' 	[11]:	MM/dd/yyyy HH:mm:ss
' 	[12]:	MMMM dd
' 	[13]:	MMMM dd
' 	[14]:	ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
' 	[15]:	ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
' 	[16]:	yyyy'-'MM'-'dd'T'HH':'mm':'ss
' 	[17]:	HH:mm
' 	[18]:	hh:mm tt
' 	[19]:	H:mm
' 	[20]:	h:mm tt
' 	[21]:	HH:mm:ss
' 	[22]:	yyyy'-'MM'-'dd HH':'mm':'ss'Z'
' 	[23]:	dddd, dd MMMM yyyy HH:mm:ss
' 	[24]:	yyyy MMMM
' 	[25]:	yyyy MMMM
' 
' The patterns for 'd':
' 	[0]:	MM/dd/yyyy
' 
' The patterns for 'D':
' 	[0]:	dddd, dd MMMM yyyy
' 
' The patterns for 'f':
' 	[0]:	dddd, dd MMMM yyyy HH:mm
' 	[1]:	dddd, dd MMMM yyyy hh:mm tt
' 	[2]:	dddd, dd MMMM yyyy H:mm
' 	[3]:	dddd, dd MMMM yyyy h:mm tt
' 
' The patterns for 'F':
' 	[0]:	dddd, dd MMMM yyyy HH:mm:ss
' 
' The patterns for 'r':
' 	[0]:	ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
' 
' The patterns for 'R':
' 	[0]:	ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
' 

注解

此方法返回一个数组,其中包含对应于特定标准格式字符串的自定义格式字符串。This method returns an array containing the custom format strings that correspond to a particular standard format string. 请参阅标准日期和时间格式字符串,获取标准格式字符串的列表。See Standard Date and Time Format Strings for a list of the standard format strings.

可以在格式设置操作中使用GetAllDateTimePatterns方法返回的数组中的自定义格式字符串。You can use the custom format strings in the array returned by the GetAllDateTimePatterns method in formatting operations. 但是,如果您这样做,则ParseTryParse方法始终无法成功分析在该格式设置操作中返回的日期和时间值的字符串表示形式。However, if you do, the string representation of a date and time value returned in that formatting operation cannot always be parsed successfully by the Parse and TryParse methods. 因此,不能假定GetAllDateTimePatterns方法返回的自定义格式字符串可用于往返日期和时间值。Therefore, you cannot assume that the custom format strings returned by the GetAllDateTimePatterns method can be used to round-trip date and time values. 以下示例阐释了此问题。The following example illustrates this problem. 它检索DateTimeFormatInfo包含俄罗斯(俄语)区域性的格式设置信息的对象。It retrieves a DateTimeFormatInfo object that contains formatting information for the Russia (Russian) culture. 它为每GetAllDateTimePatterns(Char)个标准格式字符串调用方法,然后将返回的数组中的每个自定义格式字符串DateTime.ToString(String)传递给方法以创建日期和时间的字符串表示形式。It calls the GetAllDateTimePatterns(Char) method for each standard format string, and then passes each custom format string in the returned array to the DateTime.ToString(String) method to create the string representation of a date and time. 然后,此示例通过调用DateTime.TryParse(String, DateTime)方法尝试分析此值。This example then attempts to parse this value by calling the DateTime.TryParse(String, DateTime) method. 如示例的输出所示,某些自定义格式字符串不生成成功往返的日期和时间值。As the output from the example shows, some of the custom format strings do not produce a date and time value that successfully round-trips.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      CultureInfo culture = CultureInfo.CreateSpecificCulture("ru-RU");
      char[] formats = { 'd', 'D', 'f', 'F', 'g', 'G', 'm', 'o', 
                           'r', 's', 't', 'T', 'u', 'U', 'y' };
      DateTime date1 = new DateTime(2011, 02, 01, 7, 30, 45, 0);
      DateTime date2;
      int total = 0;
      int noRoundTrip = 0;

      foreach (var fmt in formats) {
         total = 0; 
         noRoundTrip = 0;
         foreach (var pattern in culture.DateTimeFormat.GetAllDateTimePatterns(fmt)) {
            total++;
            if (! DateTime.TryParse(date1.ToString(pattern), out date2)) {
               noRoundTrip++;
               Console.WriteLine("Unable to parse {0:" + pattern + "} (format '{1}')", 
                                 date1, pattern);
            }             
         }
         if (noRoundTrip > 0)
            Console.WriteLine("{0}: Unable to round-trip {1} of {2} format strings.\n",
                              fmt, noRoundTrip, total);
         else
            Console.WriteLine("{0}: All custom format strings round trip.\n", fmt);
      }
   }
}
// The example displays the following output:
//    d: All custom format strings round trip.
//    
//    Unable to parse 1 February 2011 г. (format 'd MMMM yyyy 'г.'')
//    Unable to parse 01 February 2011 г. (format 'dd MMMM yyyy 'г.'')
//    D: Unable to round-trip 2 of 2 format strings.
//    
//    Unable to parse 1 February 2011 г. 7:30 (format 'd MMMM yyyy 'г.' H:mm')
//    Unable to parse 1 February 2011 г. 07:30 (format 'd MMMM yyyy 'г.' HH:mm')
//    Unable to parse 01 February 2011 г. 7:30 (format 'dd MMMM yyyy 'г.' H:mm')
//    Unable to parse 01 February 2011 г. 07:30 (format 'dd MMMM yyyy 'г.' HH:mm')
//    f: Unable to round-trip 4 of 4 format strings.
//    
//    Unable to parse 1 February 2011 г. 7:30:45 (format 'd MMMM yyyy 'г.' H:mm:ss')
//    Unable to parse 1 February 2011 г. 07:30:45 (format 'd MMMM yyyy 'г.' HH:mm:ss')
//    Unable to parse 01 February 2011 г. 7:30:45 (format 'dd MMMM yyyy 'г.' H:mm:ss')
//    Unable to parse 01 February 2011 г. 07:30:45 (format 'dd MMMM yyyy 'г.' HH:mm:ss')
//    F: Unable to round-trip 4 of 4 format strings.
//    
//    g: All custom format strings round trip.
//    
//    G: All custom format strings round trip.
//    
//    m: All custom format strings round trip.
//    
//    o: All custom format strings round trip.
//    
//    r: All custom format strings round trip.
//    
//    s: All custom format strings round trip.
//    
//    t: All custom format strings round trip.
//    
//    T: All custom format strings round trip.
//    
//    u: All custom format strings round trip.
//    
//    Unable to parse 1 February 2011 г. 7:30:45 (format 'd MMMM yyyy 'г.' H:mm:ss')
//    Unable to parse 1 February 2011 г. 07:30:45 (format 'd MMMM yyyy 'г.' HH:mm:ss')
//    Unable to parse 01 February 2011 г. 7:30:45 (format 'dd MMMM yyyy 'г.' H:mm:ss')
//    Unable to parse 01 February 2011 г. 07:30:45 (format 'dd MMMM yyyy 'г.' HH:mm:ss')
//    U: Unable to round-trip 4 of 4 format strings.
//    
//    y: All custom format strings round trip.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture("ru-RU")
      Dim formats() As String = { "d", "D", "f", "F", "g", "G", "m",
                                  "o", "r", "s", "t", "T", "u", "U", "y" }
      Dim date1 = New DateTime(2011, 02, 01, 7, 30, 45, 0)
      Dim date2 As DateTime
      Dim total, noRoundTrip As Integer

      For Each fmt In formats
         total = 0 : noRoundTrip = 0
         For Each pattern In culture.DateTimeFormat.GetAllDateTimePatterns(CChar(fmt))
            total += 1
            If Not DateTime.TryParse(date1.ToString(pattern), date2)
               noRoundTrip += 1
               Console.WriteLine("Unable to parse {0:" + pattern + "} (format '{1}')", 
                                 date1, pattern)
            End If             
         Next
         If noRoundTrip > 0 Then
            Console.WriteLine("{0}: Unable to round-trip {1} of {2} format strings.",
                              fmt, noRoundTrip, total)
            Console.WriteLine()
         Else
            Console.WriteLine("{0}: All custom format strings round trip.", fmt)
            Console.WriteLine()
         End If
      Next
   End Sub
End Module
' The example displays the following output:
'    d: All custom format strings round trip.
'    
'    Unable to parse 1 February 2011 г. (format 'd MMMM yyyy 'г.'')
'    Unable to parse 01 February 2011 г. (format 'dd MMMM yyyy 'г.'')
'    D: Unable to round-trip 2 of 2 format strings.
'    
'    Unable to parse 1 February 2011 г. 7:30 (format 'd MMMM yyyy 'г.' H:mm')
'    Unable to parse 1 February 2011 г. 07:30 (format 'd MMMM yyyy 'г.' HH:mm')
'    Unable to parse 01 February 2011 г. 7:30 (format 'dd MMMM yyyy 'г.' H:mm')
'    Unable to parse 01 February 2011 г. 07:30 (format 'dd MMMM yyyy 'г.' HH:mm')
'    f: Unable to round-trip 4 of 4 format strings.
'    
'    Unable to parse 1 February 2011 г. 7:30:45 (format 'd MMMM yyyy 'г.' H:mm:ss')
'    Unable to parse 1 February 2011 г. 07:30:45 (format 'd MMMM yyyy 'г.' HH:mm:ss')
'    Unable to parse 01 February 2011 г. 7:30:45 (format 'dd MMMM yyyy 'г.' H:mm:ss')
'    Unable to parse 01 February 2011 г. 07:30:45 (format 'dd MMMM yyyy 'г.' HH:mm:ss')
'    F: Unable to round-trip 4 of 4 format strings.
'    
'    g: All custom format strings round trip.
'    
'    G: All custom format strings round trip.
'    
'    m: All custom format strings round trip.
'    
'    o: All custom format strings round trip.
'    
'    r: All custom format strings round trip.
'    
'    s: All custom format strings round trip.
'    
'    t: All custom format strings round trip.
'    
'    T: All custom format strings round trip.
'    
'    u: All custom format strings round trip.
'    
'    Unable to parse 1 February 2011 г. 7:30:45 (format 'd MMMM yyyy 'г.' H:mm:ss')
'    Unable to parse 1 February 2011 г. 07:30:45 (format 'd MMMM yyyy 'г.' HH:mm:ss')
'    Unable to parse 01 February 2011 г. 7:30:45 (format 'dd MMMM yyyy 'г.' H:mm:ss')
'    Unable to parse 01 February 2011 г. 07:30:45 (format 'dd MMMM yyyy 'г.' HH:mm:ss')
'    U: Unable to round-trip 4 of 4 format strings.
'    
'    y: All custom format strings round trip.

若要分析可以用许多预定义的自定义格式表示的日期和时间的字符串表示形式,请调用以下方法之一:To parse the string representation of a date and time that can be expressed in a number of predefined custom formats, call one of the following methods:

GetAllDateTimePatterns方法返回的数组中的自定义格式字符串取决于DateTimeFormatInfo对象为其提供格式设置信息的区域性的当前日历。The custom format strings in the array returned by the GetAllDateTimePatterns method depends on the current calendar of the culture for which the DateTimeFormatInfo object supplies formatting information. 如果日历发生更改,则此方法返回的数组也会更改。If the calendar changes, the array returned by this method also changes.

另请参阅

适用于