DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Nastaví vlastní řetězce formátu data a času, které odpovídají zadanému řetězci standardního formátu.
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[]
Pole řetězců vlastního formátu.
- format
- Char
Řetězec standardního formátu přidružený k řetězcům vlastního formátu zadaným v parametru patterns
.
- Atributy
Výjimky
patterns
je null
nebo pole nulové délky.
-nebo-
format
není platný řetězec standardního formátu nebo je standardní formátovací řetězec, jehož vzory nelze nastavit.
patterns
má prvek pole, jehož hodnota je null
.
Tento DateTimeFormatInfo objekt je jen pro čtení.
Příklady
Následující příklad vytvoří instanci objektuCultureInfo, který představuje jazykovou verzi en-US (angličtina – USA) a používá ji k analýze pole řetězců data a času pomocí řetězce standardního formátu "Y". Pak použije metodu SetAllDateTimePatterns k přidružení nového řetězce vlastního formátu k řetězci standardního formátu "Y" a pak se pokusí parsovat pole řetězců data a času. Výstup z příkladu ukazuje, že nový řetězec vlastního formátu se používá v operacích analýzy i formátování.
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
Poznámky
Metoda SetAllDateTimePatterns definuje vlastní řetězce formátu, které odpovídají určitému standardnímu řetězci formátu data a času. Pokud volání metody formátování data a času zahrnuje standardní formátovací řetězec data a času určený parametrem format
, metoda použije první prvek v patterns
poli k definování formátu výsledného řetězce.
Upozornění
Metody Parse
a TryParse
při analýze řetězcové reprezentace data a času plně iterují všechny řetězce v patterns
. Pokud vyžadujete, aby řetězec data a času měl v operaci analýzy konkrétní formáty, měli byste předat pole platných formátů metodě DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)nebo DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) .
Můžete definovat vlastní formátovací řetězce, které odpovídají řetězcům standardního formátu data a času "d", "D", "t", "T" a "y" nebo "Y". Pokud je hodnota format
jakýkoli jiný standardní formátovací řetězec, SetAllDateTimePatterns metoda vyvolá ArgumentException.
Pokud vlastní řetězce formátu data a času obsahují oddělovače kalendářních dat, měli byste oddělovač data explicitně zadat místo toho, abyste se spoléhali na metodu analýzy nebo formátování, která nahradí specifikátor vlastního formátu "/" konkrétním oddělovačem data. Pokud například chcete získat vzor MM-DD-yyyy, použijte vzor "MM-DD-yyyy".