Bagikan melalui


DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) Metode

Definisi

Mengatur string format tanggal dan waktu kustom yang sesuai dengan string format standar tertentu.

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[]

Array string format kustom.

format
Char

String format standar yang terkait dengan string format kustom yang ditentukan dalam patterns parameter .

Atribut

Pengecualian

patterns adalah null atau array panjang nol.

-atau-

format bukan string format standar yang valid atau merupakan string format standar yang polanya tidak dapat diatur.

patterns memiliki elemen array yang nilainya adalah null.

Objek ini DateTimeFormatInfo bersifat baca-saja.

Contoh

Contoh berikut membuat instans CultureInfo objek yang mewakili budaya "en-US" (Inggris - Amerika Serikat) dan menggunakannya untuk mengurai array string tanggal dan waktu menggunakan string format standar "Y". Kemudian menggunakan SetAllDateTimePatterns metode untuk mengaitkan string format kustom baru dengan string format standar "Y", lalu mencoba mengurai array string tanggal dan waktu. Output dari contoh menunjukkan bahwa string format kustom baru digunakan dalam operasi penguraian dan pemformatan.

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

Keterangan

Metode menentukan SetAllDateTimePatterns string format kustom yang sesuai dengan string format tanggal dan waktu standar tertentu. Jika panggilan ke metode pemformatan tanggal dan waktu menyertakan string format tanggal dan waktu standar yang ditentukan oleh format, metode menggunakan elemen pertama dalam patterns array untuk menentukan format string yang dihasilkan.

Peringatan

Metode Parse dan TryParse tidak sepenuhnya melakukan iterasi semua string saat patterns mengurai representasi string tanggal dan waktu. Jika Anda memerlukan string tanggal dan waktu untuk memiliki format tertentu dalam operasi penguraian, Anda harus meneruskan array format yang valid ke DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)metode , DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime), atau DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) .

Anda dapat menentukan string format kustom yang sesuai dengan string format tanggal dan waktu standar "d", "D", "t", "T", dan "y" atau "Y". Jika nilai format adalah string format standar lainnya, SetAllDateTimePatterns metode akan melempar ArgumentException.

Jika string format tanggal dan waktu kustom Anda menyertakan pemisah tanggal, Anda harus secara eksplisit menentukan pemisah tanggal alih-alih mengandalkan metode penguraian atau pemformatan yang menggantikan penentu format kustom "/" dengan pemisah tanggal tertentu. Misalnya, untuk mendapatkan pola MM-DD-yyyy, gunakan pola "MM-DD-yyyy".

Berlaku untuk

Lihat juga