DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Establece las cadenas del formato de fecha y hora personalizadas que corresponden a una cadena de formato estándar especificada.
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)
Parámetros
- patterns
- String[]
Una matriz de cadenas con formato personalizado.
- format
- Char
La cadena de formato estándar asociada a las cadenas con formato personalizado especificadas en el parámetro patterns
.
- Atributos
Excepciones
patterns
es null
o una cadena de longitud cero.
o bien
format
no es una cadena de formato estándar válida o es una cadena de formato estándar cuyos modelos no se pueden establecer.
patterns
tiene un elemento de matriz cuyo valor es null
.
Este objeto DateTimeFormatInfo es de solo lectura.
Ejemplos
En el ejemplo siguiente se crea una instancia de un CultureInfo objeto que representa la referencia cultural "en-US" (inglés - Estados Unidos) y se usa para analizar una matriz de cadenas de fecha y hora mediante la cadena de formato estándar "Y". A continuación, usa el SetAllDateTimePatterns método para asociar una nueva cadena de formato personalizado con la cadena de formato estándar "Y" e intenta analizar la matriz de cadenas de fecha y hora. La salida del ejemplo muestra que la nueva cadena de formato personalizado se usa en las operaciones de análisis y formato.
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
Comentarios
El SetAllDateTimePatterns método define las cadenas de formato personalizado que corresponden a una cadena de formato de fecha y hora estándar determinada. Si una llamada a un método de formato de fecha y hora incluye la cadena de formato de fecha y hora estándar especificada por format
, el método usa el primer elemento de la patterns
matriz para definir el formato de la cadena resultante.
Advertencia
Los Parse
métodos y TryParse
no iteran completamente todas las cadenas de patterns
al analizar la representación de cadena de una fecha y hora. Si necesita una cadena de fecha y hora para tener formatos concretos en una operación de análisis, debe pasar la matriz de formatos válidos al DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)método , DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles), DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)o DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) .
Puede definir cadenas de formato personalizado que correspondan a las cadenas de formato estándar de fecha y hora "d", "D", "t", "T" e "y" o "Y". Si el valor de es cualquier otra cadena de format
formato estándar, el SetAllDateTimePatterns método produce un ArgumentException.
Si las cadenas de formato de fecha y hora personalizadas incluyen separadores de fecha, debe especificar explícitamente un separador de fecha en lugar de confiar en el método de análisis o formato que reemplaza el especificador de formato personalizado "/" por un separador de fecha determinado. Por ejemplo, para obtener el patrón MM-DD-aaaa, use el patrón "MM-DD-aaaa".