DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) 方法

定義

設定對應於指定之標準格式字串的自訂日期和時間格式字串。

public:
 void SetAllDateTimePatterns(cli::array <System::String ^> ^ patterns, char format);
public void SetAllDateTimePatterns (string[] patterns, char format);
[System.Runtime.InteropServices.ComVisible(false)]
public void SetAllDateTimePatterns (string[] patterns, char format);
member this.SetAllDateTimePatterns : string[] * char -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.SetAllDateTimePatterns : string[] * char -> unit
Public Sub SetAllDateTimePatterns (patterns As String(), format As Char)

參數

patterns
String[]

自訂格式字串的陣列。

format
Char

patterns 參數中所指定的自訂格式字串相關聯的標準格式字串。

屬性

例外狀況

patternsnull 或長度為零的陣列。

-或-

format不是一個有效的標準格式字串,或者是不能設定形式的標準格式字串。

patternsnull 值的陣列元素。

這個 DateTimeFormatInfo 物件是唯讀的。

範例

下列範例會具現化 CultureInfo 物件,此物件代表 「en-US」 (英文 - 美國) 文化特性,並使用它剖析使用 「Y」 標準格式字串的日期和時間字串陣列。 然後, SetAllDateTimePatterns 它會使用 方法來建立新的自訂格式字串與 「Y」 標準格式字串的關聯,然後嘗試剖析日期和時間字串的陣列。 範例的輸出示範新的自訂格式字串用於剖析和格式化作業。

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Use standard en-US culture.
      CultureInfo enUS = new CultureInfo("en-US");

      string[] values = { "December 2010", "December, 2010",
                          "Dec-2010", "December-2010" };

      Console.WriteLine("Supported Y/y patterns for {0} culture:", enUS.Name);
      foreach (var pattern in enUS.DateTimeFormat.GetAllDateTimePatterns('Y'))
         Console.WriteLine("   " + pattern);

      Console.WriteLine();

      // Try to parse each date string using "Y" format specifier.
      foreach (var value in values) {
         try {
            DateTime dat = DateTime.ParseExact(value, "Y", enUS);
            Console.WriteLine(String.Format(enUS, "   Parsed {0} as {1:Y}", value, dat));
         }
         catch (FormatException) {
            Console.WriteLine("   Cannot parse {0}", value);
         }
      }
      Console.WriteLine();

      //Modify supported "Y" format.
      enUS.DateTimeFormat.SetAllDateTimePatterns( new string[] { "MMM-yyyy" } , 'Y');

      Console.WriteLine("New supported Y/y patterns for {0} culture:", enUS.Name);
      foreach (var pattern in enUS.DateTimeFormat.GetAllDateTimePatterns('Y'))
         Console.WriteLine("   " + pattern);

      Console.WriteLine();

      // Try to parse each date string using "Y" format specifier.
      foreach (var value in values) {
         try {
            DateTime dat = DateTime.ParseExact(value, "Y", enUS);
            Console.WriteLine(String.Format(enUS, "   Parsed {0} as {1:Y}", value, dat));
         }
         catch (FormatException) {
            Console.WriteLine("   Cannot parse {0}", value);
         }
      }
   }
}
// The example displays the following output:
//       Supported Y/y patterns for en-US culture:
//          MMMM, yyyy
//
//          Cannot parse December 2010
//          Parsed December, 2010 as December, 2010
//          Cannot parse Dec-2010
//          Cannot parse December-2010
//
//       New supported Y/y patterns for en-US culture:
//          MMM-yyyy
//
//          Cannot parse December 2010
//          Cannot parse December, 2010
//          Parsed Dec-2010 as Dec-2010
//          Cannot parse December-2010
Imports System.Globalization

Module Example
   Public Sub Main()
      ' Use standard en-US culture.
      Dim enUS As New CultureInfo("en-US")
      
      Dim values() As String = { "December 2010", "December, 2010",  
                                 "Dec-2010", "December-2010" } 
      
      Console.WriteLine("Supported Y/y patterns for {0} culture:", enUS.Name)
      For Each pattern In enUS.DateTimeFormat.GetAllDateTimePatterns("Y"c)
         Console.WriteLine("   " + pattern)
      Next 
      Console.WriteLine()
      
      ' Try to parse each date string using "Y" format specifier.
      For Each value In values
         Try
            Dim dat As Date = Date.ParseExact(value, "Y", enUS)
            Console.WriteLine(String.Format(enUS, "   Parsed {0} as {1:Y}", value, dat))
         Catch e As FormatException
            Console.WriteLine("   Cannot parse {0}", value)
         End Try   
      Next   
      Console.WriteLine()
      
      'Modify supported "Y" format.
      enUS.DateTimeFormat.SetAllDateTimePatterns( { "MMM-yyyy" } , "Y"c)
      
      Console.WriteLine("New supported Y/y patterns for {0} culture:", enUS.Name)
      For Each pattern In enUS.DateTimeFormat.GetAllDateTimePatterns("Y"c)
         Console.WriteLine("   " + pattern)
      Next 
      Console.WriteLine()

      ' Try to parse each date string using "Y" format specifier.
      For Each value In values
         Try
            Dim dat As Date = Date.ParseExact(value, "Y", enUS)
            Console.WriteLine(String.Format(enUS, "   Parsed {0} as {1:Y}", value, dat))
         Catch e As FormatException
            Console.WriteLine("   Cannot parse {0}", value)
         End Try   
      Next   
   End Sub
End Module
' The example displays the following output:
'       Supported Y/y patterns for en-US culture:
'          MMMM, yyyy
'       
'          Cannot parse December 2010
'          Parsed December, 2010 as December, 2010
'          Cannot parse Dec-2010
'          Cannot parse December-2010
'       
'       New supported Y/y patterns for en-US culture:
'          MMM-yyyy
'       
'          Cannot parse December 2010
'          Cannot parse December, 2010
'          Parsed Dec-2010 as Dec-2010
'          Cannot parse December-2010

備註

方法 SetAllDateTimePatterns 會定義對應至特定標準日期和時間格式字串的自訂格式字串。 如果呼叫日期和時間格式方法包含 指定的 format 標準日期和時間格式字串,則 方法會使用陣列中的 patterns 第一個專案來定義所產生字串的格式。

警告

ParseTryParse 方法在剖析日期和時間的字串表示時,不會完整逐一查看 中的所有 patterns 字串。 如果您需要在剖析作業中具有特定格式的日期和時間字串,您應該將有效格式的陣列傳遞至 DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles)DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) 、 或 DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) 方法。

您可以定義對應至 「d」、「D」、「t」、「T」 和 「y」 或 「Y」 標準日期和時間格式字串的自訂格式字串。 如果 的值 format 是任何其他標準格式字串,方法會 SetAllDateTimePatterns 擲回 ArgumentException

如果您的自訂日期和時間格式字串包含日期分隔符號,您應該明確指定日期分隔符號,而不是依賴以特定日期分隔符號取代 「/」 自訂格式規範的剖析或格式化方法。 例如,若要取得 MM-DD-yyyy 模式,請使用模式 「MM-DD-yyyy」。

適用於

另請參閱