共用方式為


DateTimeFormatInfo.GetAllDateTimePatterns 方法

定義

傳回可格式化日期和時間值的標準模式。

多載

GetAllDateTimePatterns()

傳回可格式化日期和時間值的所有標準模式。

GetAllDateTimePatterns(Char)

傳回可以使用所指定標準格式字串來格式化日期和時間值的所有模式。

GetAllDateTimePatterns()

來源:
DateTimeFormatInfo.cs
來源:
DateTimeFormatInfo.cs
來源:
DateTimeFormatInfo.cs

傳回可格式化日期和時間值的所有標準模式。

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

傳回

String[]

陣列,其中包含可格式化日期和時間值的標準模式。

範例

下列範例會顯示不變異文化特性的日期和時間格式字串,以及使用該格式字串格式化特定日期時所產生的結果字串。

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具現化代表不變異文化特性的物件。 它也可以從屬性擷取 DateTimeFormatInfo 代表不變異文化特性的 InvariantInfo

備註

這個方法會傳回數位列,其中包含對應至標準格式字串的所有自定義格式字串。 如需標準格式字串的清單,請參閱 標準日期和時間格式字串

您可以在格式化作業中方法傳回的 GetAllDateTimePatterns 數位中使用自訂格式字串。 不過,如果您這樣做,該格式設定作業中傳回的日期和時間值的字串表示不一定會由 和 TryParse 方法成功Parse剖析。 因此,您無法假設 方法傳 GetAllDateTimePatterns 回的自訂格式字串可用來來回日期和時間值。 下列範例說明此問題。 它會擷 DateTimeFormatInfo 取物件,其中包含義大利文 (義大利文) 文化特性的格式資訊。 它會將 方法傳回 GetAllDateTimePatterns() 之陣列中的每個自訂格式字串傳遞至 DateTime.ToString(String) 方法,以建立日期和時間的字串表示。 此範例接著會呼叫 DateTime.TryParse(String, DateTime) 方法來嘗試剖析此值。 如範例的輸出所示,某些自定義格式字串不會產生成功往返的日期和時間值。

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.

若要剖析可以以許多預先定義自定義格式表示的日期和時間字串表示法,請呼叫下列其中一種方法:

方法所 GetAllDateTimePatterns 傳回之陣列中的自訂格式字串取決於物件提供格式資訊的目前文化 DateTimeFormatInfo 特性行事曆。 如果行事曆變更,這個方法傳回的陣列也會變更。

另請參閱

適用於

GetAllDateTimePatterns(Char)

來源:
DateTimeFormatInfo.cs
來源:
DateTimeFormatInfo.cs
來源:
DateTimeFormatInfo.cs

傳回可以使用所指定標準格式字串來格式化日期和時間值的所有模式。

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

標準格式字串。

傳回

String[]

包含標準模式的陣列,其中的日期和時間值可以使用指定的格式字串格式化。

例外狀況

format 不是有效的標準格式字串。

範例

下列範例會顯示目前行事曆的日期和時間模式。

#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'
'

備註

這個方法會傳回數位列,其中包含對應至特定標準格式字串的自定義格式字串。 如需標準格式字串的清單,請參閱 標準日期和時間格式字串

您可以在格式化作業中方法傳回的 GetAllDateTimePatterns 數位中使用自訂格式字串。 不過,如果您這樣做,該格式設定作業中傳回的日期和時間值的字串表示不一定會由 和 TryParse 方法成功Parse剖析。 因此,您無法假設 方法傳 GetAllDateTimePatterns 回的自訂格式字串可用來來回日期和時間值。 下列範例說明此問題。 它會擷 DateTimeFormatInfo 取物件,其中包含俄羅斯 (俄文) 文化特性的格式資訊。 它會針對每個標準格式字串呼叫 GetAllDateTimePatterns(Char) 方法,然後將傳回數位列中的每個自定義格式字串傳遞至 DateTime.ToString(String) 方法,以建立日期和時間的字串表示。 此範例接著會呼叫 DateTime.TryParse(String, DateTime) 方法來嘗試剖析此值。 如範例的輸出所示,某些自定義格式字串不會產生成功往返的日期和時間值。

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.

若要剖析可以以許多預先定義自定義格式表示的日期和時間字串表示法,請呼叫下列其中一種方法:

方法所 GetAllDateTimePatterns 傳回之陣列中的自訂格式字串取決於物件提供格式資訊的目前文化 DateTimeFormatInfo 特性行事曆。 如果行事曆變更,這個方法傳回的陣列也會變更。

另請參閱

適用於