Partager via


DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) Méthode

Définition

Définit les chaînes de format personnalisé de date et d'heure qui correspondent à une chaîne de format standard spécifiée.

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)

Paramètres

patterns
String[]

Tableau de chaînes de format personnalisées.

format
Char

La chaîne de format standard associée aux chaînes de format personnalisé spécifiées dans le paramètre patterns.

Attributs

Exceptions

patterns est null ou un tableau de longueur nulle.

- ou -

format n’est pas une chaîne de format standard valide ou est une chaîne de format standard dont les modèles ne peuvent pas être définis.

patterns a un élément de tableau dont la valeur est null.

Cet objet DateTimeFormatInfo est en lecture seule.

Exemples

L’exemple suivant instancie un CultureInfo objet qui représente la culture « en-US » (anglais - États-Unis) et l’utilise pour analyser un tableau de chaînes de date et d’heure à l’aide de la chaîne de format standard « Y ». Il utilise ensuite la SetAllDateTimePatterns méthode pour associer une nouvelle chaîne de format personnalisé à la chaîne de format standard « Y », puis tente d’analyser le tableau des chaînes de date et d’heure. La sortie de l’exemple montre que la nouvelle chaîne de format personnalisé est utilisée dans les opérations d’analyse et de mise en forme.

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

Remarques

La SetAllDateTimePatterns méthode définit les chaînes de format personnalisées qui correspondent à une chaîne de format de date et d’heure standard particulière. Si un appel à une méthode de mise en forme de date et d’heure inclut la chaîne de format de date et d’heure standard spécifiée par format, la méthode utilise le premier élément du patterns tableau pour définir le format de la chaîne résultante.

Avertissement

Les Parse méthodes et TryParse n’itèrent pas entièrement toutes les chaînes dans patterns lors de l’analyse de la représentation sous forme de chaîne d’une date et d’une heure. Si vous avez besoin d’une chaîne de date et d’heure pour avoir des formats particuliers dans une opération d’analyse, vous devez passer le tableau de formats valides à la DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)méthode , DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)ou DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) .

Vous pouvez définir des chaînes de format personnalisées qui correspondent aux chaînes de format de date et d’heure standard « d », « D », « t », « T » et « y » ou « Y ». Si la valeur de est une autre chaîne de format format standard, la SetAllDateTimePatterns méthode lève un ArgumentException.

Si vos chaînes de format de date et d’heure personnalisées incluent des séparateurs de date, vous devez spécifier explicitement un séparateur de date au lieu de vous appuyer sur la méthode d’analyse ou de mise en forme qui remplace le spécificateur de format personnalisé « / » par un séparateur de date particulier. Par exemple, pour obtenir le modèle MM-JJ-aaaa, utilisez le modèle « MM-JJ-aaaa ».

S’applique à

Voir aussi