DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Anger de anpassade datum- och tidsformatsträngarna som motsvarar en angiven standardformatsträng.
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)
Parametrar
- patterns
- String[]
En matris med anpassade formatsträngar.
- format
- Char
Standardformatsträngen som är associerad med de anpassade formatsträngar som anges i parametern patterns .
- Attribut
Undantag
patterns är null eller en matris med noll längd.
-eller-
format är inte en giltig standardformatsträng eller är en standardformatsträng vars mönster inte kan anges.
patterns har ett matriselement vars värde är null.
Det här DateTimeFormatInfo objektet är skrivskyddat.
Exempel
I följande exempel instansieras ett CultureInfo-objekt som representerar kulturen "en-US" (engelska – United States) och använder det för att parsa en matris med datum- och tidssträngar med standardformatsträngen "Y". Den använder SetAllDateTimePatterns sedan metoden för att associera en ny anpassad formatsträng med standardformatsträngen "Y" och försöker sedan parsa matrisen med datum- och tidssträngar. Utdata från exemplet visar att den nya anpassade formatsträngen används i både parsnings- och formateringsåtgärderna.
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
Kommentarer
Metoden SetAllDateTimePatterns definierar de anpassade formatsträngar som motsvarar en viss standardsträng för datum- och tidsformat. Om ett anrop till en datum- och tidsformateringsmetod innehåller standardformatsträngen för datum och tid som anges av formatanvänder metoden det första elementet i matrisen patterns för att definiera formatet för den resulterande strängen.
Varning
Metoderna Parse och TryParse itererar inte helt alla strängar i patterns när strängrepresentationen av ett datum och en tid parsas. Om du behöver en datum- och tidssträng för att ha specifika format i en parsningsåtgärd bör du skicka matrisen med giltiga format till DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)metoden , DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)eller DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) .
Du kan definiera anpassade formatsträngar som motsvarar standardformatsträngarna "d", "D", "t", "T" och "y" eller "Y". Om värdet format för är någon annan standardformatsträng SetAllDateTimePatterns genererar metoden en ArgumentException.
Om dina anpassade datum- och tidsformatsträngar innehåller datumavgränsare bör du uttryckligen ange en datumavgränsare i stället för att förlita dig på metoden parsning eller formatering som ersätter den anpassade formatspecificeraren "/" med en viss datumavgränsare. Om du till exempel vill hämta mönstret MM-DD-åå använder du mönstret "MM-DD-åååå".