DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) Metodo

Definizione

Imposta le stringhe di formato di data e ora che corrispondono a una stringa di formato standard specificata.Sets the custom date and time format strings that correspond to a specified standard format string.

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
Public Sub SetAllDateTimePatterns (patterns As String(), format As Char)

Parametri

patterns
String[]

Matrice di stringhe di formato personalizzate.An array of custom format strings.

format
Char

La stringa di formato standard associata alle stringhe di formato personalizzato specificate nel parametro patterns.The standard format string associated with the custom format strings specified in the patterns parameter.

Attributi

Eccezioni

patterns è null oppure è una matrice di lunghezza zero.patterns is null or a zero-length array.

-oppure--or- format non è una stringa di formato standard valida o non è una stringa di formato standard i cui modelli non possono essere impostati.format is not a valid standard format string or is a standard format string whose patterns cannot be set.

patterns ha un elemento di matrice il cui valore è null.patterns has an array element whose value is null.

Questo oggetto DateTimeFormatInfo è di sola lettura.This DateTimeFormatInfo object is read-only.

Esempio

Nell'esempio seguente viene creata un'istanza di un oggetto CultureInfo che rappresenta le impostazioni cultura "en-US" (Inglese-Stati Uniti) e lo usa per analizzare una matrice di stringhe di data e ora usando la stringa di formato standard "Y".The following example instantiates a CultureInfo object that represents the "en-US" (English - United States) culture and uses it to parse an array of date and time strings using the "Y" standard format string. USA quindi il metodo SetAllDateTimePatterns per associare una nuova stringa di formato personalizzata con la stringa di formato standard "Y", quindi tenta di analizzare la matrice di stringhe di data e ora.It then uses the SetAllDateTimePatterns method to associate a new custom format string with the "Y" standard format string, and then attempts to parse the array of date and time strings. Nell'output dell'esempio viene illustrato che la nuova stringa di formato personalizzata viene utilizzata nelle operazioni di analisi e formattazione.Output from the example demonstrates that the new custom format string is used in both the parsing and formatting operations.

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

Commenti

Il metodo SetAllDateTimePatterns definisce le stringhe di formato personalizzate che corrispondono a una stringa di formato di data e ora standard particolare.The SetAllDateTimePatterns method defines the custom format strings that correspond to a particular standard date and time format string. Se una chiamata a un metodo di formattazione di data e ora include la stringa di formato di data e ora standard specificata da format, il metodo usa il primo elemento nella matrice patterns per definire il formato della stringa risultante.If a call to a date and time formatting method includes the standard date and time format string specified by format, the method uses the first element in the patterns array to define the format of the resulting string.

Avviso

I metodi Parse e TryParse non eseguono l'iterazione completa di tutte le stringhe in patterns durante l'analisi della rappresentazione di stringa di una data e un'ora.The Parse and TryParse methods do not fully iterate all strings in patterns when parsing the string representation of a date and time. Se è necessaria una stringa di data e ora per avere formati specifici in un'operazione di analisi, è necessario passare la matrice di formati validi al metodo DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)o DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset).If you require a date and time string to have particular formats in a parsing operation, you should pass the array of valid formats to the DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime), or DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) method.

È possibile definire stringhe di formato personalizzate che corrispondono alle stringhe di formato di data e ora standard "d", "D", "t", "T" e "y" o "Y".You can define custom format strings that correspond to the "d", "D", "t", "T", and "y" or "Y" standard date and time format strings. Se il valore di format è qualsiasi altra stringa di formato standard, il metodo SetAllDateTimePatterns genera un'ArgumentException.If the value of format is any other standard format string, the SetAllDateTimePatterns method throws an ArgumentException.

Se le stringhe di formato di data e ora personalizzate includono separatori di data, è necessario specificare in modo esplicito un separatore di data anziché basarsi sul metodo di analisi o formattazione che sostituisce l'identificatore di formato personalizzato "/" con un separatore di data specifico.If your custom date and time format strings include date separators, you should explicitly specify a date separator instead of relying on the parsing or formatting method that replaces the "/" custom format specifier with a particular date separator. Per ottenere, ad esempio, il modello MM-gg-aaaa, usare il modello "MM-gg-aaaa".For example, to obtain the pattern MM-DD-yyyy, use the pattern "MM-DD-yyyy".

Si applica a

Vedi anche