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 formatmetodę , 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".