DateTimeFormatInfo.GetAllDateTimePatterns Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna os padrões padrão nos quais os valores de data e hora podem ser formatados.
Sobrecargas
GetAllDateTimePatterns() |
Retorna todos os padrões padrão nos quais os valores de data e hora podem ser formatados. |
GetAllDateTimePatterns(Char) |
Retorna todos os padrões nos quais os valores temporais podem ser formatados usando a cadeia de caracteres de formato padrão especificada. |
GetAllDateTimePatterns()
- Origem:
- DateTimeFormatInfo.cs
- Origem:
- DateTimeFormatInfo.cs
- Origem:
- DateTimeFormatInfo.cs
Retorna todos os padrões padrão nos quais os valores de data e hora podem ser formatados.
public:
cli::array <System::String ^> ^ GetAllDateTimePatterns();
public string[] GetAllDateTimePatterns ();
member this.GetAllDateTimePatterns : unit -> string[]
Public Function GetAllDateTimePatterns () As String()
Retornos
Uma matriz que contém os padrões padrão nos quais os valores de data e hora podem ser formatados.
Exemplos
O exemplo a seguir exibe as cadeias de caracteres de formato de data e hora para a cultura invariável, bem como a cadeia de caracteres de resultado produzida quando essa cadeia de caracteres de formato é usada para formatar uma data específica.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
DateTime date = new DateTime(2014, 8, 28, 12, 28, 30);
DateTimeFormatInfo invDTF = new DateTimeFormatInfo();
String[] formats = invDTF.GetAllDateTimePatterns();
Console.WriteLine("{0,-40} {1}\n", "Pattern", "Result String");
foreach (var fmt in formats)
Console.WriteLine("{0,-40} {1}", fmt, date.ToString(fmt));
}
}
// The example displays the following output:
// Pattern Result String
//
// MM/dd/yyyy 08/28/2014
// yyyy-MM-dd 2014-08-28
// dddd, dd MMMM yyyy Thursday, 28 August 2014
// dddd, dd MMMM yyyy HH:mm Thursday, 28 August 2014 12:28
// dddd, dd MMMM yyyy hh:mm tt Thursday, 28 August 2014 12:28 PM
// dddd, dd MMMM yyyy H:mm Thursday, 28 August 2014 12:28
// dddd, dd MMMM yyyy h:mm tt Thursday, 28 August 2014 12:28 PM
// dddd, dd MMMM yyyy HH:mm:ss Thursday, 28 August 2014 12:28:30
// MM/dd/yyyy HH:mm 08/28/2014 12:28
// MM/dd/yyyy hh:mm tt 08/28/2014 12:28 PM
// MM/dd/yyyy H:mm 08/28/2014 12:28
// MM/dd/yyyy h:mm tt 08/28/2014 12:28 PM
// yyyy-MM-dd HH:mm 2014-08-28 12:28
// yyyy-MM-dd hh:mm tt 2014-08-28 12:28 PM
// yyyy-MM-dd H:mm 2014-08-28 12:28
// yyyy-MM-dd h:mm tt 2014-08-28 12:28 PM
// MM/dd/yyyy HH:mm:ss 08/28/2014 12:28:30
// yyyy-MM-dd HH:mm:ss 2014-08-28 12:28:30
// MMMM dd August 28
// MMMM dd August 28
// yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK 2014-08-28T12:28:30.0000000
// yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK 2014-08-28T12:28:30.0000000
// ddd, dd MMM yyyy HH':'mm':'ss 'GMT' Thu, 28 Aug 2014 12:28:30 GMT
// ddd, dd MMM yyyy HH':'mm':'ss 'GMT' Thu, 28 Aug 2014 12:28:30 GMT
// yyyy'-'MM'-'dd'T'HH':'mm':'ss 2014-08-28T12:28:30
// HH:mm 12:28
// hh:mm tt 12:28 PM
// H:mm 12:28
// h:mm tt 12:28 PM
// HH:mm:ss 12:28:30
// yyyy'-'MM'-'dd HH':'mm':'ss'Z' 2014-08-28 12:28:30Z
// dddd, dd MMMM yyyy HH:mm:ss Thursday, 28 August 2014 12:28:30
// yyyy MMMM 2014 August
// yyyy MMMM 2014 August
Imports System.Globalization
Module Example
Public Sub Main()
Dim date1 As Date = #08/28/2014 12:28:30PM#
Dim invDTF As New DateTimeFormatInfo()
Dim formats() As String = invDTF.GetAllDateTimePatterns()
Console.WriteLine("{0,-40} {1}", "Pattern", "Result String")
Console.WriteLine()
For Each fmt In formats
Console.WriteLine("{0,-40} {1}", fmt, date1.ToString(fmt))
Next
End Sub
End Module
' The example displays the following output:
' Pattern Result String
'
' MM/dd/yyyy 08/28/2014
' yyyy-MM-dd 2014-08-28
' dddd, dd MMMM yyyy Thursday, 28 August 2014
' dddd, dd MMMM yyyy HH:mm Thursday, 28 August 2014 12:28
' dddd, dd MMMM yyyy hh:mm tt Thursday, 28 August 2014 12:28 PM
' dddd, dd MMMM yyyy H:mm Thursday, 28 August 2014 12:28
' dddd, dd MMMM yyyy h:mm tt Thursday, 28 August 2014 12:28 PM
' dddd, dd MMMM yyyy HH:mm:ss Thursday, 28 August 2014 12:28:30
' MM/dd/yyyy HH:mm 08/28/2014 12:28
' MM/dd/yyyy hh:mm tt 08/28/2014 12:28 PM
' MM/dd/yyyy H:mm 08/28/2014 12:28
' MM/dd/yyyy h:mm tt 08/28/2014 12:28 PM
' yyyy-MM-dd HH:mm 2014-08-28 12:28
' yyyy-MM-dd hh:mm tt 2014-08-28 12:28 PM
' yyyy-MM-dd H:mm 2014-08-28 12:28
' yyyy-MM-dd h:mm tt 2014-08-28 12:28 PM
' MM/dd/yyyy HH:mm:ss 08/28/2014 12:28:30
' yyyy-MM-dd HH:mm:ss 2014-08-28 12:28:30
' MMMM dd August 28
' MMMM dd August 28
' yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK 2014-08-28T12:28:30.0000000
' yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK 2014-08-28T12:28:30.0000000
' ddd, dd MMM yyyy HH':'mm':'ss 'GMT' Thu, 28 Aug 2014 12:28:30 GMT
' ddd, dd MMM yyyy HH':'mm':'ss 'GMT' Thu, 28 Aug 2014 12:28:30 GMT
' yyyy'-'MM'-'dd'T'HH':'mm':'ss 2014-08-28T12:28:30
' HH:mm 12:28
' hh:mm tt 12:28 PM
' H:mm 12:28
' h:mm tt 12:28 PM
' HH:mm:ss 12:28:30
' yyyy'-'MM'-'dd HH':'mm':'ss'Z' 2014-08-28 12:28:30Z
' dddd, dd MMMM yyyy HH:mm:ss Thursday, 28 August 2014 12:28:30
' yyyy MMMM 2014 August
' yyyy MMMM 2014 August
O exemplo cria uma instância de um DateTimeFormatInfo objeto que representa a cultura invariável chamando o DateTimeFormatInfo construtor . Ele também pode recuperar um DateTimeFormatInfo que representa a cultura invariável da InvariantInfo propriedade .
Comentários
Esse método retorna uma matriz que contém todas as cadeias de caracteres de formato personalizado que correspondem a cadeias de caracteres de formato padrão. Consulte Cadeias de caracteres de formato de data e hora padrão para obter uma lista das cadeias de caracteres de formato padrão.
Você pode usar as cadeias de caracteres de formato personalizado na matriz retornada pelo GetAllDateTimePatterns método em operações de formatação. No entanto, se você fizer isso, a representação de cadeia de caracteres de um valor de data e hora retornado nessa operação de formatação nem sempre poderá ser analisada com êxito pelos Parse
métodos e TryParse
. Portanto, você não pode assumir que as cadeias de caracteres de formato personalizado retornadas pelo GetAllDateTimePatterns método podem ser usadas para valores de data e hora de ida e volta. O exemplo a seguir ilustra esse problema. Ele recupera um DateTimeFormatInfo objeto que contém informações de formatação para a cultura italiana (italiana). Ele passa cada cadeia de caracteres de formato personalizado na matriz retornada pelo GetAllDateTimePatterns() método para o DateTime.ToString(String) método para criar a representação de cadeia de caracteres de uma data e hora. Em seguida, este exemplo tenta analisar esse valor chamando o DateTime.TryParse(String, DateTime) método . Como mostra a saída do exemplo, algumas das cadeias de caracteres de formato personalizado não produzem um valor de data e hora que faça viagens de ida e volta com êxito.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo culture = CultureInfo.CreateSpecificCulture("it-IT");
DateTime date1 = new DateTime(2011, 02, 01, 7, 30, 45, 0);
DateTime date2;
int total = 0;
int noRoundTrip = 0;
foreach (var fmt in culture.DateTimeFormat.GetAllDateTimePatterns()) {
total += 1;
if (! DateTime.TryParse(date1.ToString(fmt), out date2)) {
noRoundTrip++;
Console.WriteLine("Unable to parse {0:" + fmt + "} (format '{1}')",
date1, fmt);
}
}
Console.WriteLine("\nUnable to round-trip {0} of {1} format strings.",
noRoundTrip, total);
}
}
// The example displays the following output:
// Unable to parse Tuesday 1 February 2011 7.30 (format 'dddd d MMMM yyyy H.mm')
// Unable to parse Tuesday 1 February 2011 07.30 (format 'dddd d MMMM yyyy HH.mm')
// Unable to parse 1-Feb-11 7.30 (format 'd-MMM-yy H.mm')
// Unable to parse 1-Feb-11 07.30 (format 'd-MMM-yy HH.mm')
// Unable to parse 1 February 2011 7.30 (format 'd MMMM yyyy H.mm')
// Unable to parse 1 February 2011 07.30 (format 'd MMMM yyyy HH.mm')
// Unable to parse Tuesday 1 February 2011 7.30.45 (format 'dddd d MMMM yyyy H.mm.ss')
// Unable to parse Tuesday 1 February 2011 07.30.45 (format 'dddd d MMMM yyyy HH.mm.ss')
// Unable to parse 1-Feb-11 7.30.45 (format 'd-MMM-yy H.mm.ss')
// Unable to parse 1-Feb-11 07.30.45 (format 'd-MMM-yy HH.mm.ss')
// Unable to parse 1 February 2011 7.30.45 (format 'd MMMM yyyy H.mm.ss')
// Unable to parse 1 February 2011 07.30.45 (format 'd MMMM yyyy HH.mm.ss')
// Unable to parse 01/02/2011 7.30 (format 'dd/MM/yyyy H.mm')
// Unable to parse 01/02/2011 07.30 (format 'dd/MM/yyyy HH.mm')
// Unable to parse 01/Feb/2011 7.30 (format 'dd/MMM/yyyy H.mm')
// Unable to parse 01/Feb/2011 07.30 (format 'dd/MMM/yyyy HH.mm')
// Unable to parse 01/02/11 7.30 (format 'dd/MM/yy H.mm')
// Unable to parse 01/02/11 07.30 (format 'dd/MM/yy HH.mm')
// Unable to parse 01.2.11 7.30 (format 'dd.M.yy H.mm')
// Unable to parse 01.2.11 07.30 (format 'dd.M.yy HH.mm')
// Unable to parse 1/2/11 7.30 (format 'd/M/yy H.mm')
// Unable to parse 1/2/11 07.30 (format 'd/M/yy HH.mm')
// Unable to parse 2011-02-01 7.30 (format 'yyyy-MM-dd H.mm')
// Unable to parse 2011-02-01 07.30 (format 'yyyy-MM-dd HH.mm')
// Unable to parse 01/02/2011 7.30.45 (format 'dd/MM/yyyy H.mm.ss')
// Unable to parse 01/02/2011 07.30.45 (format 'dd/MM/yyyy HH.mm.ss')
// Unable to parse 01/Feb/2011 7.30.45 (format 'dd/MMM/yyyy H.mm.ss')
// Unable to parse 01/Feb/2011 07.30.45 (format 'dd/MMM/yyyy HH.mm.ss')
// Unable to parse 01/02/11 7.30.45 (format 'dd/MM/yy H.mm.ss')
// Unable to parse 01/02/11 07.30.45 (format 'dd/MM/yy HH.mm.ss')
// Unable to parse 01.2.11 7.30.45 (format 'dd.M.yy H.mm.ss')
// Unable to parse 01.2.11 07.30.45 (format 'dd.M.yy HH.mm.ss')
// Unable to parse 1/2/11 7.30.45 (format 'd/M/yy H.mm.ss')
// Unable to parse 1/2/11 07.30.45 (format 'd/M/yy HH.mm.ss')
// Unable to parse 2011-02-01 7.30.45 (format 'yyyy-MM-dd H.mm.ss')
// Unable to parse 2011-02-01 07.30.45 (format 'yyyy-MM-dd HH.mm.ss')
// Unable to parse Tuesday 1 February 2011 7.30.45 (format 'dddd d MMMM yyyy H.mm.ss')
// Unable to parse Tuesday 1 February 2011 07.30.45 (format 'dddd d MMMM yyyy HH.mm.ss')
// Unable to parse 1-Feb-11 7.30.45 (format 'd-MMM-yy H.mm.ss')
// Unable to parse 1-Feb-11 07.30.45 (format 'd-MMM-yy HH.mm.ss')
// Unable to parse 1 February 2011 7.30.45 (format 'd MMMM yyyy H.mm.ss')
// Unable to parse 1 February 2011 07.30.45 (format 'd MMMM yyyy HH.mm.ss')
//
// Unable to round-trip 42 of 98 format strings.
Imports System.Globalization
Module Example
Public Sub Main()
Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture("it-IT")
Dim date1 = New DateTime(2011, 02, 01, 7, 30, 45, 0)
Dim date2 As DateTime
Dim total, noRoundTrip As Integer
For Each fmt In culture.DateTimeFormat.GetAllDateTimePatterns()
total += 1
If Not DateTime.TryParse(date1.ToString(fmt), date2)
noRoundTrip += 1
Console.WriteLine("Unable to parse {0:" + fmt + "} (format '{1}')",
date1, fmt)
End If
Next
Console.WriteLine()
Console.WriteLine("Unable to round-trip {0} of {1} format strings.",
noRoundTrip, total)
End Sub
End Module
' The example displays the following output:
' Unable to parse Tuesday 1 February 2011 7.30 (format 'dddd d MMMM yyyy H.mm')
' Unable to parse Tuesday 1 February 2011 07.30 (format 'dddd d MMMM yyyy HH.mm')
' Unable to parse 1-Feb-11 7.30 (format 'd-MMM-yy H.mm')
' Unable to parse 1-Feb-11 07.30 (format 'd-MMM-yy HH.mm')
' Unable to parse 1 February 2011 7.30 (format 'd MMMM yyyy H.mm')
' Unable to parse 1 February 2011 07.30 (format 'd MMMM yyyy HH.mm')
' Unable to parse Tuesday 1 February 2011 7.30.45 (format 'dddd d MMMM yyyy H.mm.ss')
' Unable to parse Tuesday 1 February 2011 07.30.45 (format 'dddd d MMMM yyyy HH.mm.ss')
' Unable to parse 1-Feb-11 7.30.45 (format 'd-MMM-yy H.mm.ss')
' Unable to parse 1-Feb-11 07.30.45 (format 'd-MMM-yy HH.mm.ss')
' Unable to parse 1 February 2011 7.30.45 (format 'd MMMM yyyy H.mm.ss')
' Unable to parse 1 February 2011 07.30.45 (format 'd MMMM yyyy HH.mm.ss')
' Unable to parse 01/02/2011 7.30 (format 'dd/MM/yyyy H.mm')
' Unable to parse 01/02/2011 07.30 (format 'dd/MM/yyyy HH.mm')
' Unable to parse 01/Feb/2011 7.30 (format 'dd/MMM/yyyy H.mm')
' Unable to parse 01/Feb/2011 07.30 (format 'dd/MMM/yyyy HH.mm')
' Unable to parse 01/02/11 7.30 (format 'dd/MM/yy H.mm')
' Unable to parse 01/02/11 07.30 (format 'dd/MM/yy HH.mm')
' Unable to parse 01.2.11 7.30 (format 'dd.M.yy H.mm')
' Unable to parse 01.2.11 07.30 (format 'dd.M.yy HH.mm')
' Unable to parse 1/2/11 7.30 (format 'd/M/yy H.mm')
' Unable to parse 1/2/11 07.30 (format 'd/M/yy HH.mm')
' Unable to parse 2011-02-01 7.30 (format 'yyyy-MM-dd H.mm')
' Unable to parse 2011-02-01 07.30 (format 'yyyy-MM-dd HH.mm')
' Unable to parse 01/02/2011 7.30.45 (format 'dd/MM/yyyy H.mm.ss')
' Unable to parse 01/02/2011 07.30.45 (format 'dd/MM/yyyy HH.mm.ss')
' Unable to parse 01/Feb/2011 7.30.45 (format 'dd/MMM/yyyy H.mm.ss')
' Unable to parse 01/Feb/2011 07.30.45 (format 'dd/MMM/yyyy HH.mm.ss')
' Unable to parse 01/02/11 7.30.45 (format 'dd/MM/yy H.mm.ss')
' Unable to parse 01/02/11 07.30.45 (format 'dd/MM/yy HH.mm.ss')
' Unable to parse 01.2.11 7.30.45 (format 'dd.M.yy H.mm.ss')
' Unable to parse 01.2.11 07.30.45 (format 'dd.M.yy HH.mm.ss')
' Unable to parse 1/2/11 7.30.45 (format 'd/M/yy H.mm.ss')
' Unable to parse 1/2/11 07.30.45 (format 'd/M/yy HH.mm.ss')
' Unable to parse 2011-02-01 7.30.45 (format 'yyyy-MM-dd H.mm.ss')
' Unable to parse 2011-02-01 07.30.45 (format 'yyyy-MM-dd HH.mm.ss')
' Unable to parse Tuesday 1 February 2011 7.30.45 (format 'dddd d MMMM yyyy H.mm.ss')
' Unable to parse Tuesday 1 February 2011 07.30.45 (format 'dddd d MMMM yyyy HH.mm.ss')
' Unable to parse 1-Feb-11 7.30.45 (format 'd-MMM-yy H.mm.ss')
' Unable to parse 1-Feb-11 07.30.45 (format 'd-MMM-yy HH.mm.ss')
' Unable to parse 1 February 2011 7.30.45 (format 'd MMMM yyyy H.mm.ss')
' Unable to parse 1 February 2011 07.30.45 (format 'd MMMM yyyy HH.mm.ss')
'
' Unable to round-trip 42 of 98 format strings.
Para analisar a representação de cadeia de caracteres de uma data e hora que podem ser expressas em vários formatos personalizados predefinidos, chame um dos seguintes métodos:
DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)
DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles)
DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)
DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset)
As cadeias de caracteres de formato personalizado na matriz retornada pelo GetAllDateTimePatterns método dependem do calendário atual da cultura para a qual o DateTimeFormatInfo objeto fornece informações de formatação. Se o calendário for alterado, a matriz retornada por esse método também será alterada.
Confira também
Aplica-se a
GetAllDateTimePatterns(Char)
- Origem:
- DateTimeFormatInfo.cs
- Origem:
- DateTimeFormatInfo.cs
- Origem:
- DateTimeFormatInfo.cs
Retorna todos os padrões nos quais os valores temporais podem ser formatados usando a cadeia de caracteres de formato padrão especificada.
public:
cli::array <System::String ^> ^ GetAllDateTimePatterns(char format);
public string[] GetAllDateTimePatterns (char format);
member this.GetAllDateTimePatterns : char -> string[]
Public Function GetAllDateTimePatterns (format As Char) As String()
Parâmetros
- format
- Char
Uma cadeia de caracteres de formato padrão.
Retornos
Uma matriz contendo os padrões padrão nos quais os valores temporais podem ser formatados usando a cadeia de caracteres de formato especificada.
Exceções
format
não é uma cadeia de caracteres de formato padrão válida.
Exemplos
O exemplo a seguir exibe os padrões de data e hora do calendário atual.
#using <System.dll>
using namespace System;
using namespace System::Globalization;
public ref class SamplesDateTimeFormatInfo
{
public:
static void Main()
{
// Creates a new DateTimeFormatinfo.
DateTimeFormatInfo^ myDtfi = gcnew DateTimeFormatInfo;
// Gets and prints all the patterns
array<String^>^myPatternsArray = myDtfi->GetAllDateTimePatterns();
Console::WriteLine( "ALL the patterns:" );
PrintIndexAndValues( myPatternsArray );
// Gets and prints the pattern(s) associated with some of the format characters.
myPatternsArray = myDtfi->GetAllDateTimePatterns( 'd' );
Console::WriteLine( "The patterns for 'd':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi->GetAllDateTimePatterns( 'D' );
Console::WriteLine( "The patterns for 'D':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi->GetAllDateTimePatterns( 'f' );
Console::WriteLine( "The patterns for 'f':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi->GetAllDateTimePatterns( 'F' );
Console::WriteLine( "The patterns for 'F':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi->GetAllDateTimePatterns( 'r' );
Console::WriteLine( "The patterns for 'r':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi->GetAllDateTimePatterns( 'R' );
Console::WriteLine( "The patterns for 'R':" );
PrintIndexAndValues( myPatternsArray );
}
public:
static void PrintIndexAndValues( array<String^>^myArray ) {
int i = 0;
for each ( String^ s in myArray )
Console::WriteLine( "\t[{0}]:\t{1}", i++, s );
Console::WriteLine();
}
};
int main()
{
SamplesDateTimeFormatInfo::Main();
}
/*
This code produces the following output.
ALL the patterns:
[0]: MM/dd/yyyy
[1]: dddd, dd MMMM yyyy
[2]: dddd, dd MMMM yyyy HH:mm
[3]: dddd, dd MMMM yyyy hh:mm tt
[4]: dddd, dd MMMM yyyy H:mm
[5]: dddd, dd MMMM yyyy h:mm tt
[6]: dddd, dd MMMM yyyy HH:mm:ss
[7]: MM/dd/yyyy HH:mm
[8]: MM/dd/yyyy hh:mm tt
[9]: MM/dd/yyyy H:mm
[10]: MM/dd/yyyy h:mm tt
[11]: MM/dd/yyyy HH:mm:ss
[12]: MMMM dd
[13]: MMMM dd
[14]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
[15]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
[16]: yyyy'-'MM'-'dd'T'HH':'mm':'ss
[17]: HH:mm
[18]: hh:mm tt
[19]: H:mm
[20]: h:mm tt
[21]: HH:mm:ss
[22]: yyyy'-'MM'-'dd HH':'mm':'ss'Z'
[23]: dddd, dd MMMM yyyy HH:mm:ss
[24]: yyyy MMMM
[25]: yyyy MMMM
The patterns for 'd':
[0]: MM/dd/yyyy
The patterns for 'D':
[0]: dddd, dd MMMM yyyy
The patterns for 'f':
[0]: dddd, dd MMMM yyyy HH:mm
[1]: dddd, dd MMMM yyyy hh:mm tt
[2]: dddd, dd MMMM yyyy H:mm
[3]: dddd, dd MMMM yyyy h:mm tt
The patterns for 'F':
[0]: dddd, dd MMMM yyyy HH:mm:ss
The patterns for 'r':
[0]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
The patterns for 'R':
[0]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
*/
using System;
using System.Globalization;
public class SamplesDateTimeFormatInfo {
public static void Main() {
// Creates a new DateTimeFormatinfo.
DateTimeFormatInfo myDtfi = new DateTimeFormatInfo();
// Gets and prints all the patterns.
String[] myPatternsArray = myDtfi.GetAllDateTimePatterns();
Console.WriteLine( "ALL the patterns:" );
PrintIndexAndValues( myPatternsArray );
// Gets and prints the pattern(s) associated with some of the format characters.
myPatternsArray = myDtfi.GetAllDateTimePatterns('d');
Console.WriteLine( "The patterns for 'd':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi.GetAllDateTimePatterns('D');
Console.WriteLine( "The patterns for 'D':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi.GetAllDateTimePatterns('f');
Console.WriteLine( "The patterns for 'f':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi.GetAllDateTimePatterns('F');
Console.WriteLine( "The patterns for 'F':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi.GetAllDateTimePatterns('r');
Console.WriteLine( "The patterns for 'r':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi.GetAllDateTimePatterns('R');
Console.WriteLine( "The patterns for 'R':" );
PrintIndexAndValues( myPatternsArray );
}
public static void PrintIndexAndValues( String[] myArray ) {
int i = 0;
foreach ( string s in myArray )
Console.WriteLine( "\t[{0}]:\t{1}", i++, s );
Console.WriteLine();
}
}
/*
This code produces the following output.
ALL the patterns:
[0]: MM/dd/yyyy
[1]: dddd, dd MMMM yyyy
[2]: dddd, dd MMMM yyyy HH:mm
[3]: dddd, dd MMMM yyyy hh:mm tt
[4]: dddd, dd MMMM yyyy H:mm
[5]: dddd, dd MMMM yyyy h:mm tt
[6]: dddd, dd MMMM yyyy HH:mm:ss
[7]: MM/dd/yyyy HH:mm
[8]: MM/dd/yyyy hh:mm tt
[9]: MM/dd/yyyy H:mm
[10]: MM/dd/yyyy h:mm tt
[11]: MM/dd/yyyy HH:mm:ss
[12]: MMMM dd
[13]: MMMM dd
[14]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
[15]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
[16]: yyyy'-'MM'-'dd'T'HH':'mm':'ss
[17]: HH:mm
[18]: hh:mm tt
[19]: H:mm
[20]: h:mm tt
[21]: HH:mm:ss
[22]: yyyy'-'MM'-'dd HH':'mm':'ss'Z'
[23]: dddd, dd MMMM yyyy HH:mm:ss
[24]: yyyy MMMM
[25]: yyyy MMMM
The patterns for 'd':
[0]: MM/dd/yyyy
The patterns for 'D':
[0]: dddd, dd MMMM yyyy
The patterns for 'f':
[0]: dddd, dd MMMM yyyy HH:mm
[1]: dddd, dd MMMM yyyy hh:mm tt
[2]: dddd, dd MMMM yyyy H:mm
[3]: dddd, dd MMMM yyyy h:mm tt
The patterns for 'F':
[0]: dddd, dd MMMM yyyy HH:mm:ss
The patterns for 'r':
[0]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
The patterns for 'R':
[0]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
*/
Imports System.Globalization
Public Class SamplesDateTimeFormatInfo
Public Shared Sub Main()
' Creates a new DateTimeFormatinfo.
Dim myDtfi As New DateTimeFormatInfo()
' Gets and prints all the patterns.
Dim myPatternsArray As String() = myDtfi.GetAllDateTimePatterns()
Console.WriteLine("ALL the patterns:")
PrintIndexAndValues(myPatternsArray)
' Gets and prints the pattern(s) associated with some of the format characters.
myPatternsArray = myDtfi.GetAllDateTimePatterns("d"c)
Console.WriteLine("The patterns for 'd':")
PrintIndexAndValues(myPatternsArray)
myPatternsArray = myDtfi.GetAllDateTimePatterns("D"c)
Console.WriteLine("The patterns for 'D':")
PrintIndexAndValues(myPatternsArray)
myPatternsArray = myDtfi.GetAllDateTimePatterns("f"c)
Console.WriteLine("The patterns for 'f':")
PrintIndexAndValues(myPatternsArray)
myPatternsArray = myDtfi.GetAllDateTimePatterns("F"c)
Console.WriteLine("The patterns for 'F':")
PrintIndexAndValues(myPatternsArray)
myPatternsArray = myDtfi.GetAllDateTimePatterns("r"c)
Console.WriteLine("The patterns for 'r':")
PrintIndexAndValues(myPatternsArray)
myPatternsArray = myDtfi.GetAllDateTimePatterns("R"c)
Console.WriteLine("The patterns for 'R':")
PrintIndexAndValues(myPatternsArray)
End Sub
Public Shared Sub PrintIndexAndValues(myArray() As String)
Dim i As Integer = 0
Dim s As String
For Each s In myArray
Console.WriteLine(ControlChars.Tab + "[{0}]:" + ControlChars.Tab _
+ "{1}", i, s)
i += 1
Next s
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' ALL the patterns:
' [0]: MM/dd/yyyy
' [1]: dddd, dd MMMM yyyy
' [2]: dddd, dd MMMM yyyy HH:mm
' [3]: dddd, dd MMMM yyyy hh:mm tt
' [4]: dddd, dd MMMM yyyy H:mm
' [5]: dddd, dd MMMM yyyy h:mm tt
' [6]: dddd, dd MMMM yyyy HH:mm:ss
' [7]: MM/dd/yyyy HH:mm
' [8]: MM/dd/yyyy hh:mm tt
' [9]: MM/dd/yyyy H:mm
' [10]: MM/dd/yyyy h:mm tt
' [11]: MM/dd/yyyy HH:mm:ss
' [12]: MMMM dd
' [13]: MMMM dd
' [14]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
' [15]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
' [16]: yyyy'-'MM'-'dd'T'HH':'mm':'ss
' [17]: HH:mm
' [18]: hh:mm tt
' [19]: H:mm
' [20]: h:mm tt
' [21]: HH:mm:ss
' [22]: yyyy'-'MM'-'dd HH':'mm':'ss'Z'
' [23]: dddd, dd MMMM yyyy HH:mm:ss
' [24]: yyyy MMMM
' [25]: yyyy MMMM
'
' The patterns for 'd':
' [0]: MM/dd/yyyy
'
' The patterns for 'D':
' [0]: dddd, dd MMMM yyyy
'
' The patterns for 'f':
' [0]: dddd, dd MMMM yyyy HH:mm
' [1]: dddd, dd MMMM yyyy hh:mm tt
' [2]: dddd, dd MMMM yyyy H:mm
' [3]: dddd, dd MMMM yyyy h:mm tt
'
' The patterns for 'F':
' [0]: dddd, dd MMMM yyyy HH:mm:ss
'
' The patterns for 'r':
' [0]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
'
' The patterns for 'R':
' [0]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
'
Comentários
Esse método retorna uma matriz que contém as cadeias de caracteres de formato personalizado que correspondem a uma cadeia de caracteres de formato padrão específica. Consulte Cadeias de caracteres de formato de data e hora padrão para obter uma lista das cadeias de caracteres de formato padrão.
Você pode usar as cadeias de caracteres de formato personalizado na matriz retornada pelo GetAllDateTimePatterns método em operações de formatação. No entanto, se você fizer isso, a representação de cadeia de caracteres de um valor de data e hora retornado nessa operação de formatação nem sempre poderá ser analisada com êxito pelos Parse
métodos e TryParse
. Portanto, você não pode assumir que as cadeias de caracteres de formato personalizado retornadas pelo GetAllDateTimePatterns método podem ser usadas para valores de data e hora de ida e volta. O exemplo a seguir ilustra esse problema. Ele recupera um DateTimeFormatInfo objeto que contém informações de formatação para a cultura russa. Ele chama o GetAllDateTimePatterns(Char) método para cada cadeia de caracteres de formato padrão e passa cada cadeia de caracteres de formato personalizado na matriz retornada para o DateTime.ToString(String) método para criar a representação de cadeia de caracteres de uma data e hora. Em seguida, este exemplo tenta analisar esse valor chamando o DateTime.TryParse(String, DateTime) método . Como mostra a saída do exemplo, algumas das cadeias de caracteres de formato personalizado não produzem um valor de data e hora que faça viagens de ida e volta com êxito.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo culture = CultureInfo.CreateSpecificCulture("ru-RU");
char[] formats = { 'd', 'D', 'f', 'F', 'g', 'G', 'm', 'o',
'r', 's', 't', 'T', 'u', 'U', 'y' };
DateTime date1 = new DateTime(2011, 02, 01, 7, 30, 45, 0);
DateTime date2;
int total = 0;
int noRoundTrip = 0;
foreach (var fmt in formats) {
total = 0;
noRoundTrip = 0;
foreach (var pattern in culture.DateTimeFormat.GetAllDateTimePatterns(fmt)) {
total++;
if (! DateTime.TryParse(date1.ToString(pattern), out date2)) {
noRoundTrip++;
Console.WriteLine("Unable to parse {0:" + pattern + "} (format '{1}')",
date1, pattern);
}
}
if (noRoundTrip > 0)
Console.WriteLine("{0}: Unable to round-trip {1} of {2} format strings.\n",
fmt, noRoundTrip, total);
else
Console.WriteLine("{0}: All custom format strings round trip.\n", fmt);
}
}
}
// The example displays the following output:
// d: All custom format strings round trip.
//
// Unable to parse 1 February 2011 г. (format 'd MMMM yyyy 'г.'')
// Unable to parse 01 February 2011 г. (format 'dd MMMM yyyy 'г.'')
// D: Unable to round-trip 2 of 2 format strings.
//
// Unable to parse 1 February 2011 г. 7:30 (format 'd MMMM yyyy 'г.' H:mm')
// Unable to parse 1 February 2011 г. 07:30 (format 'd MMMM yyyy 'г.' HH:mm')
// Unable to parse 01 February 2011 г. 7:30 (format 'dd MMMM yyyy 'г.' H:mm')
// Unable to parse 01 February 2011 г. 07:30 (format 'dd MMMM yyyy 'г.' HH:mm')
// f: Unable to round-trip 4 of 4 format strings.
//
// Unable to parse 1 February 2011 г. 7:30:45 (format 'd MMMM yyyy 'г.' H:mm:ss')
// Unable to parse 1 February 2011 г. 07:30:45 (format 'd MMMM yyyy 'г.' HH:mm:ss')
// Unable to parse 01 February 2011 г. 7:30:45 (format 'dd MMMM yyyy 'г.' H:mm:ss')
// Unable to parse 01 February 2011 г. 07:30:45 (format 'dd MMMM yyyy 'г.' HH:mm:ss')
// F: Unable to round-trip 4 of 4 format strings.
//
// g: All custom format strings round trip.
//
// G: All custom format strings round trip.
//
// m: All custom format strings round trip.
//
// o: All custom format strings round trip.
//
// r: All custom format strings round trip.
//
// s: All custom format strings round trip.
//
// t: All custom format strings round trip.
//
// T: All custom format strings round trip.
//
// u: All custom format strings round trip.
//
// Unable to parse 1 February 2011 г. 7:30:45 (format 'd MMMM yyyy 'г.' H:mm:ss')
// Unable to parse 1 February 2011 г. 07:30:45 (format 'd MMMM yyyy 'г.' HH:mm:ss')
// Unable to parse 01 February 2011 г. 7:30:45 (format 'dd MMMM yyyy 'г.' H:mm:ss')
// Unable to parse 01 February 2011 г. 07:30:45 (format 'dd MMMM yyyy 'г.' HH:mm:ss')
// U: Unable to round-trip 4 of 4 format strings.
//
// y: All custom format strings round trip.
Imports System.Globalization
Module Example
Public Sub Main()
Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture("ru-RU")
Dim formats() As String = { "d", "D", "f", "F", "g", "G", "m",
"o", "r", "s", "t", "T", "u", "U", "y" }
Dim date1 = New DateTime(2011, 02, 01, 7, 30, 45, 0)
Dim date2 As DateTime
Dim total, noRoundTrip As Integer
For Each fmt In formats
total = 0 : noRoundTrip = 0
For Each pattern In culture.DateTimeFormat.GetAllDateTimePatterns(CChar(fmt))
total += 1
If Not DateTime.TryParse(date1.ToString(pattern), date2)
noRoundTrip += 1
Console.WriteLine("Unable to parse {0:" + pattern + "} (format '{1}')",
date1, pattern)
End If
Next
If noRoundTrip > 0 Then
Console.WriteLine("{0}: Unable to round-trip {1} of {2} format strings.",
fmt, noRoundTrip, total)
Console.WriteLine()
Else
Console.WriteLine("{0}: All custom format strings round trip.", fmt)
Console.WriteLine()
End If
Next
End Sub
End Module
' The example displays the following output:
' d: All custom format strings round trip.
'
' Unable to parse 1 February 2011 г. (format 'd MMMM yyyy 'г.'')
' Unable to parse 01 February 2011 г. (format 'dd MMMM yyyy 'г.'')
' D: Unable to round-trip 2 of 2 format strings.
'
' Unable to parse 1 February 2011 г. 7:30 (format 'd MMMM yyyy 'г.' H:mm')
' Unable to parse 1 February 2011 г. 07:30 (format 'd MMMM yyyy 'г.' HH:mm')
' Unable to parse 01 February 2011 г. 7:30 (format 'dd MMMM yyyy 'г.' H:mm')
' Unable to parse 01 February 2011 г. 07:30 (format 'dd MMMM yyyy 'г.' HH:mm')
' f: Unable to round-trip 4 of 4 format strings.
'
' Unable to parse 1 February 2011 г. 7:30:45 (format 'd MMMM yyyy 'г.' H:mm:ss')
' Unable to parse 1 February 2011 г. 07:30:45 (format 'd MMMM yyyy 'г.' HH:mm:ss')
' Unable to parse 01 February 2011 г. 7:30:45 (format 'dd MMMM yyyy 'г.' H:mm:ss')
' Unable to parse 01 February 2011 г. 07:30:45 (format 'dd MMMM yyyy 'г.' HH:mm:ss')
' F: Unable to round-trip 4 of 4 format strings.
'
' g: All custom format strings round trip.
'
' G: All custom format strings round trip.
'
' m: All custom format strings round trip.
'
' o: All custom format strings round trip.
'
' r: All custom format strings round trip.
'
' s: All custom format strings round trip.
'
' t: All custom format strings round trip.
'
' T: All custom format strings round trip.
'
' u: All custom format strings round trip.
'
' Unable to parse 1 February 2011 г. 7:30:45 (format 'd MMMM yyyy 'г.' H:mm:ss')
' Unable to parse 1 February 2011 г. 07:30:45 (format 'd MMMM yyyy 'г.' HH:mm:ss')
' Unable to parse 01 February 2011 г. 7:30:45 (format 'dd MMMM yyyy 'г.' H:mm:ss')
' Unable to parse 01 February 2011 г. 07:30:45 (format 'dd MMMM yyyy 'г.' HH:mm:ss')
' U: Unable to round-trip 4 of 4 format strings.
'
' y: All custom format strings round trip.
Para analisar a representação de cadeia de caracteres de uma data e hora que podem ser expressas em vários formatos personalizados predefinidos, chame um dos seguintes métodos:
DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)
DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles)
DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)
DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset)
As cadeias de caracteres de formato personalizado na matriz retornada pelo GetAllDateTimePatterns método dependem do calendário atual da cultura para a qual o DateTimeFormatInfo objeto fornece informações de formatação. Se o calendário for alterado, a matriz retornada por esse método também será alterada.