DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Ustawia niestandardowe ciągi formatu daty i godziny, które odpowiadają określonemu standardowemu ciągowi formatu.
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)
Parametry
- patterns
- String[]
Tablica ciągów formatu niestandardowego.
- format
- Char
Ciąg formatu standardowego skojarzony z niestandardowymi ciągami formatu określonymi w parametrze patterns
.
- Atrybuty
Wyjątki
patterns
jest null
lub tablicą o zerowej długości.
-lub-
format
nie jest prawidłowym ciągiem formatu standardowego lub jest standardowym ciągiem formatu, którego nie można ustawić wzorców.
patterns
ma element tablicy, którego wartość to null
.
Ten DateTimeFormatInfo obiekt jest tylko do odczytu.
Przykłady
Poniższy przykład tworzy wystąpienie obiektu reprezentującego kulturę CultureInfo "en-US" (angielski — Stany Zjednoczone) i używa jej do analizowania tablicy ciągów daty i godziny przy użyciu standardowego ciągu formatu "Y". Następnie używa SetAllDateTimePatterns metody do skojarzenia nowego niestandardowego ciągu formatu z ciągiem formatu standardowego "Y", a następnie próbuje przeanalizować tablicę ciągów daty i godziny. Dane wyjściowe z przykładu pokazują, że nowy ciąg formatu niestandardowego jest używany zarówno w operacjach analizowania, jak i formatowania.
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
Uwagi
Metoda SetAllDateTimePatterns definiuje niestandardowe ciągi formatu, które odpowiadają określonemu standardowemu ciągowi formatu daty i godziny. Jeśli wywołanie metody formatowania daty i godziny zawiera standardowy ciąg formatu daty i godziny określony przez format
metodę , metoda używa pierwszego elementu w patterns
tablicy do zdefiniowania formatu wynikowego ciągu.
Ostrzeżenie
Metody Parse
i TryParse
nie w pełni iterują wszystkich ciągów w patterns
pliku podczas analizowania reprezentacji ciągu daty i godziny. Jeśli chcesz, aby ciąg daty i godziny miał określone formaty w operacji analizowania, należy przekazać tablicę prawidłowych formatów do DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)metody , DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)lub DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) .
Możesz zdefiniować niestandardowe ciągi formatu, które odpowiadają standardowym ciągom formatu daty i godziny "d", "t", "T" i "y" lub "Y". Jeśli wartość format
jest dowolnym innym standardowym ciągiem formatu, SetAllDateTimePatterns metoda zgłasza wartość ArgumentException.
Jeśli niestandardowe ciągi formatu daty i godziny zawierają separatory dat, należy jawnie określić separator daty zamiast polegać na metodzie analizowania lub formatowania, która zastępuje specyfikator formatu niestandardowego "/" określonym separatorem dat. Aby na przykład uzyskać wzorzec MM-DD-yy, użyj wzorca "MM-DD-yyyy".