Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
Este artigo fornece observações complementares à documentação de referência para esta API.
O DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) método analisa uma cadeia de caracteres que pode conter informações de data, hora e fuso horário. É semelhante ao DateTime.Parse(String, IFormatProvider, DateTimeStyles) método, exceto que o DateTime.TryParse(String, DateTime) método não lança uma exceção se a conversão falhar.
Este método tenta ignorar dados não reconhecidos e analisar a cadeia de caracteres de entrada (s) completamente. Se s contiver uma hora, mas nenhuma data, o método por padrão substituirá a data atual ou, se styles incluir o NoCurrentDateDefault sinalizador, substituirá DateTime.Date.MinValue. Se s contiver uma data, mas nenhuma hora, 12:00 meia-noite é usada como a hora padrão. Se uma data estiver presente, mas seu componente ano consistir em apenas dois dígitos, ela será convertida em um ano no provider calendário atual do parâmetro com base no valor da Calendar.TwoDigitYearMax propriedade. Em s, todos os caracteres de espaço em branco à esquerda, internos ou à direita são ignorados. A data e a hora podem ser colocadas entre parênteses com um par de caracteres NUMBER SIGN à esquerda e à direita ('#', U+0023), e podem ser rastreadas com um ou mais caracteres NULL (U+0000).
Os formatos válidos específicos para elementos de data e hora, bem como os nomes e símbolos usados em datas e horas, são definidos pelo provider parâmetro, que pode ser qualquer um dos seguintes:
- Um CultureInfo objeto que representa a cultura cuja formatação é usada no
sparâmetro. O DateTimeFormatInfo objeto retornado pela CultureInfo.DateTimeFormat propriedade define a formatação usada nos. - Um DateTimeFormatInfo objeto que define a formatação usada no
s. - Uma IFormatProvider implementação personalizada. Seu IFormatProvider.GetFormat método retorna um DateTimeFormatInfo objeto que define a formatação usada no
s.
Se provider for igual a null, a cultura atual é usada.
Se s for a representação de cadeia de caracteres de um dia bissexto num ano bissexto no calendário atual, o método analisa s com êxito. Se s é a representação de cadeia de um dia bissexto em um ano não bissexto no calendário atual de provider, a operação de análise falha e o método retorna false.
O styles parâmetro define a interpretação precisa da cadeia de caracteres analisada e como a operação de análise deve manipulá-la. Pode ser um ou mais membros da DateTimeStyles enumeração, conforme descrito na tabela a seguir.
| Membro DateTimeStyles | Descrição |
|---|---|
| AdjustToUniversal | Analisa s e, se necessário, converte-o para UTC. Se s incluir um deslocamento de fuso horário, ou se s não contiver informações de fuso horário, mas styles incluir o DateTimeStyles.AssumeLocal sinalizador, o método analisará a cadeia de caracteres, chamará ToUniversalTime para converter o valor retornado DateTime em UTC e definirá a Kind propriedade como DateTimeKind.Utc. Se s indicar que ele representa UTC, ou se s não contém informações de fuso horário, mas styles inclui o DateTimeStyles.AssumeUniversal sinalizador, o método analisa a cadeia de caracteres, não executa nenhuma conversão de fuso horário no valor retornado DateTime e define a Kind propriedade como DateTimeKind.Utc. Em todos os outros casos, a bandeira não tem efeito. |
| AllowInnerWhite | Embora válido, esse valor é ignorado. O espaço em branco interno é permitido nos elementos de data e hora do s. |
| AllowLeadingWhite | Embora válido, esse valor é ignorado. O espaço em branco à esquerda é permitido nos elementos de data e hora do s. |
| AllowTrailingWhite | Embora válido, esse valor é ignorado. O espaço em branco final é permitido nos elementos de data e hora do s. |
| AllowWhiteSpaces | Especifica que s pode conter espaços em branco internos, à esquerda e à direita. Este é o comportamento padrão. Ele não pode ser substituído fornecendo um valor de enumeração mais restritivo DateTimeStyles , como DateTimeStyles.None. |
| AssumeLocal | Especifica que, se s não houver informações de fuso horário, presume-se que elas representem uma hora local. A menos que o DateTimeStyles.AdjustToUniversal sinalizador esteja presente, a Kind propriedade do valor retornado DateTime é definida como DateTimeKind.Local. |
| AssumeUniversal | Especifica que, se s não contiver informações de fuso horário, presume-se que representa UTC. A menos que o DateTimeStyles.AdjustToUniversal sinalizador esteja presente, o método converte o valor retornado DateTime de UTC para a hora local e define sua Kind propriedade como DateTimeKind.Local. |
| None | Embora válido, esse valor é ignorado. |
| RoundtripKind | Para cadeias de caracteres que contêm informações de fuso horário, tenta impedir a conversão de uma cadeia de caracteres de data e hora para um valor DateTime com a sua propriedade Kind configurada para DateTimeKind.Local. Normalmente, essa cadeia de caracteres é criada chamando o DateTime.ToString(String) método usando os especificadores de formato padrão "o", "r" ou "u". |
Se s não contiver informações de fuso horário, o método DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) retornará um valor DateTime cuja propriedade Kind é DateTimeKind.Unspecified, a menos que um sinalizador styles indique o contrário. Se s incluir informações de fuso horário ou de deslocamento de fuso horário, o método DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) executa qualquer conversão de tempo necessária e retorna uma das seguintes opções:
- Um DateTime valor cuja data e hora refletem a hora local e cuja Kind propriedade é DateTimeKind.Local.
- Ou, se
stylesincluir o AdjustToUniversal sinalizador, um DateTime valor cuja data e hora reflitam UTC e cuja Kind propriedade seja DateTimeKind.Utc.
Esse comportamento pode ser substituído usando o DateTimeStyles.RoundtripKind sinalizador.
Analise culturas personalizadas
Para interpretar uma cadeia de caracteres de data e hora gerada para uma cultura personalizada, use o método TryParseExact em vez do método TryParse para aumentar a probabilidade de que a operação de análise seja bem-sucedida. Uma cadeia de caracteres de data e hora de cultura personalizada pode ser complicada e difícil de analisar. O TryParse método tenta analisar uma cadeia de caracteres com vários padrões de análise implícitos, todos os quais podem falhar. Por outro lado, o TryParseExact método requer que você designe explicitamente um ou mais padrões de análise exatos que provavelmente terão êxito.
Para obter mais informações sobre culturas personalizadas, consulte a System.Globalization.CultureAndRegionInfoBuilder classe.