DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define as cadeias de formato de data e hora personalizadas que correspondem a uma cadeia de formato padrão especificada.
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)
Parâmetros
- patterns
- String[]
Um conjunto de cadeias de formatos personalizados.
- format
- Char
A string de formato padrão associada às strings de formato personalizadas especificadas no patterns parâmetro.
- Atributos
Exceções
patterns é null ou um array de comprimento zero.
-ou-
format não é uma cadeia de formato padrão válida ou é uma cadeia de formato padrão cujos padrões não podem ser definidos.
patterns tem um elemento de array cujo valor é null.
Este DateTimeFormatInfo objeto é apenas de leitura.
Exemplos
O exemplo seguinte instancia um objeto CultureInfo que representa a cultura "en-US" (inglês - Estados Unidos) e usa-o para analisar um array de cadeias de datas e horas usando a cadeia de formato padrão "Y". Depois, utiliza o SetAllDateTimePatterns método para associar uma nova cadeia de formato personalizada à cadeia de formato padrão "Y", e tenta analisar o array de cadeias de data e hora. A saída do exemplo demonstra que a nova cadeia de formato personalizada é usada tanto nas operações de análise como de formatação.
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
Observações
O SetAllDateTimePatterns método define as cadeias de formato personalizadas que correspondem a uma determinada cadeia de formato padrão de data e hora. Se uma chamada a um método de formatação de data e hora incluir a cadeia padrão de formato de data e hora especificada por format, o método utiliza o primeiro elemento do patterns array para definir o formato da cadeia resultante.
Warning
Os Parse métodos e TryParse não iteram completamente todas as strings ao patterns analisar a representação da string de uma data e hora. Se precisar que uma cadeia de data e hora tenha formatos específicos numa operação de análise sintática, deve passar o array de formatos válidos para o DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime), ou DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) método.
Pode definir cadeias de formato personalizadas que correspondam às cadeias padrão de data e hora "d", "D", "T", "T" e "y" ou "Y". Se o valor de format for qualquer outra cadeia de formato padrão, o SetAllDateTimePatterns método lança um ArgumentException.
Se as suas strings personalizadas de formato de data e hora incluírem separadores de data, deve especificar explicitamente um separador de data em vez de depender do método de análise ou formatação que substitui o especificador de formato personalizado "/" por um separador de data específico. Por exemplo, para obter o padrão MM-DD-yyyy, use o padrão "MM-DD-yyyy".