Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês
Esta documentação foi arquivada e não está sendo atualizada.

Método DateTime.TryParseExact (String, String, IFormatProvider, DateTimeStyles, DateTime%)

Converte a representação de seqüência de caracteres especificada de uma data e time em seu DateTime equivalente usando o formato especificado, as informações de formato específicas de cultura e estilo. O formato da representação de seqüência de caracteres deve correspondência exatamente o formato especificado. O método retorna um valor que indica se a conversão foi bem-sucedida.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)

public static bool TryParseExact(
	string s,
	string format,
	IFormatProvider provider,
	DateTimeStyles style,
	out DateTime result
)

Parâmetros

s
Tipo: System.String
Uma seqüência de caracteres que contém data e time para converter.
format
Tipo: System.String
O formato obrigatório de s.
provider
Tipo: System.IFormatProvider
An IFormatProvider objeto que forneça informações de formatação específicas da cultura sobre s.
style
Tipo: System.Globalization.DateTimeStyles
Uma combinação de bit a bit de um ou mais valores de enumeração que indicam o formato permitido de s.
result
Tipo: System.DateTime%
Quando esse método retorna, ele contém o valor DateTime equivalente à data e hora contida em s, caso a conversão seja bem-sucedida. Caso a conversão falhe o método retornará MinValue. A conversão falhar se o s ou format o parâmetro é null, é uma seqüência de caracteres vazia ou não contém uma data e time em que corresponde ao padrão especificado no format. Este parâmetro é passado não inicializado.

Valor de retorno

Tipo: System.Boolean
true Se s foi convertido com êxito; caso contrário, false.

ExceçãoCondição
ArgumentException

styles não é válido DateTimeStyles valor.

- ou -

styles contém uma combinação inválido de DateTimeStyles valores (por exemplo, ambos AssumeLocal e AssumeUniversal).

The DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) método analisa a representação da cadeia de caracteres de uma data, que deve ser no formato definido pela format parâmetro. É semelhante ao método de DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) , exceto que o método de TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) não lança uma exceção se a conversão falhar.

The s parâmetro contém a data e time para analisar e deve ser em um formato definido pela format parâmetro. Se data, time, e fuso horário elementos estão presentes no s, eles também devem exibidos na ordem especificada pelo format. If format define uma data com nenhum elemento de time e a análise de operação é bem-sucedida, o resultante DateTime valor possui um time de meia-noite (00: 00: 00). If format define um time com nenhum elemento de data e a análise de operação é bem-sucedida, o resultante DateTime valor por padrão possui uma data de DateTime.Now.Date, ou ele tem uma data de DateTime.MinValue.Date Se styles inclui o DateTimeStyles.NoCurrentDateDefault sinalizar. The style parâmetro determina se a s parâmetro pode conter caracteres de espaço em branco entrelinhamento, interna ou à direita.

If s não contém fuso horário informações, o Kind propriedade do retornado DateTime o objeto é DateTimeKind.Unspecified. Este comportamento pode ser alterado usando o DateTimeStyles.AssumeLocal sinalizar que retorna um DateTime valor cuja Kind propriedade é DateTimeKind.Local, ou usando o DateTimeStyles.AssumeUniversal e DateTimeStyles.AdjustToUniversal sinalizadores, que retorna um DateTime valor cuja Kind propriedade é DateTimeKind.Utc. Se s contiver informações de fuso horário, o time será convertido para time local, se necessário e o Kind propriedade do retornado DateTime o objeto é conjunto para DateTimeKind.Local. Este comportamento pode ser alterado usando o DateTimeStyles.RoundtripKind sinalizar para não converter Tempo Universal Coordenado (UTC) para um horário local e o conjunto a Kind propriedade para DateTimeKind.Utc.

The format o parâmetro contém um padrão que corresponde ao formato esperado das s parâmetro. O padrão no format parâmetro consiste em um ou mais especificadores de formato personalizado das Seqüências de Caracteres de Formato Personalizado de Data e Hora tabela ou um especificador de formato único padrão, que identifica um padrão predefinido, da Seqüências de caracteres de formato padrão de data e hora tabela.

Se você não usar separadores de data ou time em um padrão de formato personalizado, use a cultura invariável de provider parâmetro e a forma mais ampla de cada especificador de formato personalizado. Por exemplo, se você desejar especificar o horário do padrão, especifique o formulário mais largo, "HH", em vez do formulário mais estreito, "H".

ObservaçãoObservação:

Em vez de exigir que s está de acordo com um único formato para a análise de operação ser bem-sucedida, você pode chamar o DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) método e especificar vários formatos permitidos. Isso faz com que a operação de análise mais probabilidade de êxito.

Determinada data e time símbolos e seqüências de caracteres (sistema autônomo nomes dos dias da semana em um determinado linguagem) usadas em s são definidos pela provider parâmetro, sistema autônomo é o formato exato do s Se format é uma seqüência de caracteres de especificador de formato padrão. The provider parâmetro pode ser uma das seguintes opções:

If provider é null, o CultureInfo objeto que corresponde a cultura corrente é usado.

The styles parâmetro inclui um ou mais membros da DateTimeStyles Enumeração que determinam se e onde o espaço em branco não definidas por format pode aparecer em s e que controlar o comportamento exato da operação de análise. A tabela a seguir descreve como cada membro do DateTimeStyles enumeração afeta a operação das TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) método.

Membro de DateTimeStyles

Descrição

AdjustToUniversal

Analisa s e, se necessário, o converte em UTC. If s inclui um fuso horário deslocamento, ou se s não contém fuso horário informações mas styles inclui o DateTimeStyles.AssumeLocal sinalizar, o método analisa a seqüência de caracteres, chamadas ToUniversalTime Para converter o retornado DateTime valor para o UTC e conjuntos de Kind propriedade para DateTimeKind.Utc. If s indica que ele representa UTC, ou se s não contém fuso horário informações mas styles inclui o DateTimeStyles.AssumeUniversal sinalizar, o método analisa a seqüência de caracteres, não executa fuso horário conversão no retornado DateTime valor e define o Kind propriedade para DateTimeKind.Utc. Em outros casos, o sinalizar não tem efeito.

AllowInnerWhite

Especifica que o espaço em branco não definido por format podem aparecer entre qualquer individuais de data ou time elemento.

AllowLeadingWhite

Especifica que o espaço em branco não definido por format pode aparecer no início s.

AllowTrailingWhite

Especifica que o espaço em branco não definido por format pode aparecer no participante de s.

AllowWhiteSpaces

Especifica que s pode conter, interno, entrelinhamento e espaços em branco não definidos por à direita format.

AssumeLocal

Especifica que, se s não possui qualquer fuso horário informações, será considerado representam um horário local. A menos que o DateTimeStyles.AdjustToUniversal sinalizar estiver presente, o Kind propriedade do retornado DateTime valor é definido como DateTimeKind.Local.

AssumeUniversal

Especifica que, se s não possui qualquer fuso horário informações, será considerado representam UTC. A menos que o DateTimeStyles.AdjustToUniversal sinalizar estiver presente, o método converte o retornado DateTime valor de UTC para time local e define sua Kind propriedade para DateTimeKind.Local.

NoCurrentDateDefault

If s contém o time sem informações de data, a data do valor retornado é conjunto para DateTime.MinValue.Date.

None

The s parâmetro é analisado usando valores padrão. Não há espaço em branco seja aquele presente em format é permitido. If s não possui um componente de data, a data do retornado DateTime o valor é conjunto para 1/1/0001. If s não contém nenhuma informação de fuso horário, o Kind propriedade do retornado DateTime o objeto é conjunto para DateTimeKind.Unspecified. Se time zona informações estão presentes no s, o time é convertido em time local e o Kind propriedade do retornado DateTime objeto é definido como DateTimeKind.Local.

RoundtripKind

Para seqüências de caracteres que contêm time informações, da zona tenta evitar a conversão para um DateTime valor com sua Kind conjunto de propriedades como DateTimeKind.Local. Este sinalizar impede principalmente a conversão de vezes de UTC para horas locais.

O exemplo a seguir demonstra o DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) método. Observe que a seqüência de caracteres "01/5/2009 8: 30 AM" não pode ser analisado com êxito quando ostyles parâmetro for igual a DateTimeStyles.None porque não são permitidos espaços entrelinhamento por format. Além disso, a seqüência de caracteres "01/5/2009 09: 00" não pode ser analisado com êxito com umformatde "dd/mm/aaaa hh: mm" porque a seqüência de caracteres de data não preceda o número do mês com um zero entrelinhamento, sistema autônomo format requer.

CultureInfo enUS = new CultureInfo("en-US"); 
string dateString;
DateTime dateValue;

// Parse date with no style flags.
dateString = " 5/01/2009 8:30 AM";
if (DateTime.TryParseExact(dateString, "g", enUS, 
                           DateTimeStyles.None, out dateValue))
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                     dateValue.Kind);
else
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

// Allow a leading space in the date string.if (DateTime.TryParseExact(dateString, "g", enUS, 
                           DateTimeStyles.AllowLeadingWhite, out dateValue))
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                     dateValue.Kind);
else
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

// Use custom formats with M and MM.
dateString = "5/01/2009 09:00";
if (DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, 
                           DateTimeStyles.None, out dateValue))
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                     dateValue.Kind);
else
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

// Allow a leading space in the date string.if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, 
                        DateTimeStyles.None, out dateValue))
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                     dateValue.Kind);
else
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

// Parse a string with time zone information.
dateString = "05/01/2009 01:30:42 PM -05:00"; 
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, 
                        DateTimeStyles.None, out dateValue))
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                     dateValue.Kind);
else
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

// Allow a leading space in the date string.if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, 
                        DateTimeStyles.AdjustToUniversal, out dateValue))
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                     dateValue.Kind);
else
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

// Parse a string represengting UTC.
dateString = "2008-06-11T16:11:20.0904778Z";
if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, 
                               DateTimeStyles.None, out dateValue))
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                     dateValue.Kind);
else
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, 
                           DateTimeStyles.RoundtripKind, out dateValue))
   Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                     dateValue.Kind);
else
   Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

// The example displays the following output://    ' 5/01/2009 8:30 AM' is not in an acceptable format.//    Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).//    Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).//    '5/01/2009 09:00' is not in an acceptable format.//    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).//    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).//    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).//    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0


Data

História

Motivo

Julho de 2008

Comentários adicionados e um exemplo.

Aprimoramento de informações.

Mostrar: