Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece comentários 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 gera uma exceção se a conversão falhar.
Esse 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, ele substituirá DateTime.Date.MinValue. Se s contiver uma data, mas sem hora, 12:00 meia-noite será usada como a hora padrão. Se uma data estiver presente, mas seu componente de 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. Qualquer caractere de espaço em branco inicial, interno ou final em s será ignorado. A data e a hora podem ser colocadas entre um par de caracteres SIGNO DE NÚMERO à esquerda e à direita ('#', U+0023) e podem ter um ou mais caracteres NULL ao final (U+0000).
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 ems. - Um DateTimeFormatInfo objeto que define a formatação usada em
s. - Uma implementação personalizada IFormatProvider : Seu IFormatProvider.GetFormat método retorna um DateTimeFormatInfo objeto que define a formatação usada em
s.
Se provider for null, a cultura atual será usada.
Se s é a representação em forma de cadeia de caracteres de um dia bissexto em um ano bissexto no calendário atual, s, o método faz a análise com êxito. Se s for a representação de cadeia de caracteres de um dia bissexto em um ano não bissexto no calendário atual de provider, a operação de análise falhará e o método retornará false.
O styles parâmetro define a interpretação precisa da cadeia de caracteres analisada e como a operação de análise deve lidar com ela. 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 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 contiver informações de fuso horário, mas styles incluir o DateTimeStyles.AssumeUniversal sinalizador, o método analisará a cadeia de caracteres, não executará nenhuma conversão de fuso horário no valor retornado DateTime e definirá a Kind propriedade como DateTimeKind.Utc. Em todos os outros casos, a bandeira não tem efeito. |
| AllowInnerWhite | Embora seja válido, esse valor é ignorado. O espaço em branco interno é permitido nos elementos de data e hora de s. |
| AllowLeadingWhite | Embora seja válido, esse valor é ignorado. O espaço em branco à esquerda é permitido nos elementos de data e hora de s. |
| AllowTrailingWhite | Embora seja válido, esse valor é ignorado. O espaço em branco após o texto é permitido nos elementos de data e hora de s. |
| AllowWhiteSpaces | Especifica que s pode conter espaços em branco à esquerda, internos e à direita. Esse é 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, será assumido que ele represente uma hora local. A menos que o DateTimeStyles.AdjustToUniversal sinalizador esteja presente, a Kind propriedade do valor retornado DateTime será definida como DateTimeKind.Local. |
| AssumeUniversal | Especifica que, se s não houver informações de fuso horário, será assumido que ele represente UTC. A menos que o DateTimeStyles.AdjustToUniversal sinalizador esteja presente, o método converterá o valor retornado DateTime de UTC para hora local e definirá sua Kind propriedade como DateTimeKind.Local. |
| None | Embora seja 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 em um DateTime valor com sua Kind propriedade definida como 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 DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) método retornará um DateTime valor cuja Kind propriedade é DateTimeKind.Unspecified , a menos que um styles sinalizador 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) realiza as conversões de tempo necessárias e retorna um dos seguintes:
- 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 refletem UTC e cuja Kind propriedade é DateTimeKind.Utc.
Esse comportamento pode ser substituído usando o DateTimeStyles.RoundtripKind sinalizador.
Analisar culturas personalizadas
Se você analisar uma cadeia de caracteres de data e hora gerada para uma cultura personalizada, use o TryParseExact método em vez do TryParse método para melhorar 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, que podem falhar. Por outro lado, o TryParseExact método exige que você designe explicitamente um ou mais padrões exatos de análise que provavelmente serão bem-sucedidos.
Para obter mais informações sobre culturas personalizadas, consulte a System.Globalization.CultureAndRegionInfoBuilder classe.