DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) Methode

Definition

Legt die benutzerdefinierten Formatzeichenfolgen für Datum und Uhrzeit fest, die einer angegebenen Standardformatzeichenfolge entsprechen.

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)

Parameter

patterns
String[]

Ein Array benutzerdefinierter Formatzeichenfolgen.

format
Char

Die den im patterns-Parameter angegebenen benutzerdefinierten Formatzeichenfolgen zugeordnete Standardformatzeichenfolge.

Attribute

Ausnahmen

patterns ist null oder ein Array der Länge 0 (null).

- oder -

format ist keine gültige Standardformatzeichenfolge oder ist eine Standardformatzeichenfolge, deren Muster nicht festgelegt werden können.

patterns hat ein Arrayelement, dessen Wert null ist.

Dieses DateTimeFormatInfo-Objekt ist schreibgeschützt.

Beispiele

Im folgenden Beispiel wird ein CultureInfo -Objekt instanziiert, das die Kultur "en-US" (Englisch – USA) darstellt, und verwendet es, um ein Array von Datums- und Uhrzeitzeichenfolgen mithilfe der Standardformatzeichenfolge "Y" zu analysieren. Anschließend wird die SetAllDateTimePatterns -Methode verwendet, um der Standardformatzeichenfolge "Y" eine neue benutzerdefinierte Formatzeichenfolge zuzuordnen, und dann wird versucht, das Array von Datums- und Uhrzeitzeichenfolgen zu analysieren. Die Ausgabe des Beispiels zeigt, dass die neue benutzerdefinierte Formatzeichenfolge sowohl für die Analyse- als auch für die Formatierungsvorgänge verwendet wird.

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

Hinweise

Die SetAllDateTimePatterns -Methode definiert die benutzerdefinierten Formatzeichenfolgen, die einer bestimmten Standardformatzeichenfolge für Datum und Uhrzeit entsprechen. Wenn ein Aufruf einer Datums- und Uhrzeitformatmethode die standardmäßige Formatzeichenfolge für Datum und Uhrzeit enthält, die von angegeben wird format, verwendet die -Methode das erste Element im patterns Array, um das Format der resultierenden Zeichenfolge zu definieren.

Warnung

Die Parse Methoden und TryParse durchlaufen nicht alle Zeichenfolgen in patterns vollständig, wenn die Zeichenfolgendarstellung eines Datums und einer Uhrzeit analysiert wird. Wenn Sie eine Datums- und Uhrzeitzeichenfolge benötigen, um bestimmte Formate in einem Analysevorgang zu haben, sollten Sie das Array gültiger Formate an die DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)- , DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles)- DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)oder DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) -Methode übergeben.

Sie können benutzerdefinierte Formatzeichenfolgen definieren, die den Standardformatzeichenfolgen für Datum und Uhrzeit "d", "D", "t", "T" und "y" oder "Y" entsprechen. Wenn der Wert von format eine andere Standardformatzeichenfolge ist, löst die SetAllDateTimePatterns -Methode eine aus ArgumentException.

Wenn Ihre benutzerdefinierten Datums- und Uhrzeitformatzeichenfolgen Datumstrennzeichen enthalten, sollten Sie explizit ein Datumstrennzeichen angeben, anstatt sich auf die Analyse- oder Formatierungsmethode zu verlassen, die den benutzerdefinierten Formatbezeichner "/" durch ein bestimmtes Datumstrennzeichen ersetzt. Verwenden Sie beispielsweise das Muster "MM-TT-yyyy", um das Muster MM-TT-jjjj zu erhalten.

Gilt für:

Weitere Informationen