DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) Methode

Definitie

Hiermee stelt u de tekenreeksen voor de aangepaste datum- en tijdnotatie in die overeenkomen met een opgegeven standaardnotatietekenreeks.

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

Parameters

patterns
String[]

Een matrix met tekenreeksen met aangepaste notatie.

format
Char

De standaardnotatietekenreeks die is gekoppeld aan de tekenreeksen voor aangepaste notatie die zijn opgegeven in de patterns parameter.

Kenmerken

Uitzonderingen

patterns is null of een matrix met lengte nul.

– of –

format is geen geldige standaardnotatietekenreeks of is een standaardnotatietekenreeks waarvan de patronen niet kunnen worden ingesteld.

patterns heeft een matrixelement waarvan de waarde is null.

Dit DateTimeFormatInfo object heeft het kenmerk Alleen-lezen.

Voorbeelden

In het volgende voorbeeld wordt een CultureInfo-object geïnstitueert dat de cultuur 'en-US' (Engels - Verenigde Staten) vertegenwoordigt en deze gebruikt om een matrix met datum- en tijdtekenreeksen te parseren met behulp van de tekenreeks met de standaardnotatie 'Y'. Vervolgens wordt de SetAllDateTimePatterns methode gebruikt om een nieuwe tekenreeks met een aangepaste notatie te koppelen aan de standaardnotatietekenreeks 'Y' en wordt vervolgens geprobeerd de matrix met datum- en tijdtekenreeksen te parseren. Uitvoer uit het voorbeeld laat zien dat de nieuwe tekenreeks voor aangepaste opmaak wordt gebruikt in zowel de parserings- als opmaakbewerkingen.

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

Opmerkingen

De SetAllDateTimePatterns methode definieert de tekenreeksen voor aangepaste notatie die overeenkomen met een bepaalde standaardtekenreeks voor datum- en tijdnotatie. Als een aanroep naar een datum- en tijdnotatiemethode de standaardtekenreeks voor datum- en tijdnotatie bevat die is formatopgegeven door, gebruikt de methode het eerste element in de patterns matrix om de notatie van de resulterende tekenreeks te definiëren.

Warning

De Parse en TryParse methoden herhalen niet alle tekenreeksen patterns volledig bij het parseren van de tekenreeksweergave van een datum en tijd. Als u een datum- en tijdtekenreeks nodig hebt om bepaalde notaties in een parseringsbewerking te hebben, moet u de matrix met geldige notaties doorgeven aan de DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), of DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) methode.

U kunt tekenreeksen voor aangepaste notatie definiëren die overeenkomen met de tekenreeksen 'd', 'D', 't', 'T' en 'y' of 'Y'. Als de waarde van format een andere standaardnotatietekenreeks is, genereert de SetAllDateTimePatterns methode een ArgumentException.

Als uw aangepaste tekenreeksen voor datum- en tijdnotatie datumscheidingstekens bevatten, moet u expliciet een datumscheidingsteken opgeven in plaats van te vertrouwen op de methode voor parseren of opmaken die de aangepaste notatieaanduiding '/' vervangt door een bepaald datumscheidingsteken. Als u bijvoorbeeld het patroon MM-DD-jjjj wilt verkrijgen, gebruikt u het patroon "MM-DD-jjjj".

Van toepassing op

Zie ook