Métodos System.TimeSpan.TryParse
Este artigo fornece observações complementares à documentação de referência para essa API.
Método TryParse(System.String,System.TimeSpan@)
O TimeSpan.TryParse(String, TimeSpan) método é como o TimeSpan.Parse(String) método, exceto que ele não lança uma exceção se a conversão falhar.
O s
parâmetro contém uma especificação de intervalo de tempo no formato:
[ws][-]{ d | d.hh:mm[:ss[.ff]] | hh:mm[:ss[.ff]] }[ws]
Os elementos entre colchetes ([ e ]) são opcionais. É necessária uma seleção da lista de alternativas entre chaves ({ e }) e separadas por barras verticais (|). A tabela a seguir descreve cada elemento.
Element | Descrição |
---|---|
ws | Espaço em branco opcional. |
- | Um sinal de subtração opcional, que indica um TimeSpan negativo. |
d | Dias, variando de 0 a 10675199. |
. | Um símbolo sensível à cultura que separa dias de horas. O formato invariável usa um caractere de ponto final ("."). |
hh | Horas, variando de 0 a 23. |
: | O símbolo separador de hora sensível à cultura. O formato invariante usa um caractere de dois pontos (":"). |
mm | Minutos, variando de 0 a 59. |
ss | Segundos opcionais, variando de 0 a 59. |
. | Um símbolo sensível à cultura que separa segundos de frações de um segundo. O formato invariável usa um caractere de ponto final ("."). |
ff | Segundos fracionários opcionais, consistindo em um a sete dígitos decimais. |
Os componentes do devem especificar coletivamente um intervalo de s
tempo maior ou igual a e menor ou igual a TimeSpan.MinValueTimeSpan.MaxValue.
O Parse(String) método tenta analisar s
usando cada um dos formatos específicos de cultura para a cultura atual.
Método TryParse(String, IFormatProvider, TimeSpan)
O TryParse(String, IFormatProvider, TimeSpan) método é como o Parse(String, IFormatProvider) método, exceto que ele não lança uma exceção se a conversão falhar.
O input
parâmetro contém uma especificação de intervalo de tempo no formato:
[ws][-]{ d | d.hh:mm[:ss[.ff]] | hh:mm[:ss[.ff]] }[ws]
Os elementos entre colchetes ([ e ]) são opcionais. É necessária uma seleção da lista de alternativas entre chaves ({ e }) e separadas por barras verticais (|). A tabela a seguir descreve cada elemento.
Element | Descrição |
---|---|
ws | Espaço em branco opcional. |
- | Um sinal de subtração opcional, que indica um TimeSpan negativo. |
d | Dias, variando de 0 a 10675199. |
. | Um símbolo sensível à cultura que separa dias de horas. O formato invariável usa um caractere de ponto final ("."). |
hh | Horas, variando de 0 a 23. |
: | O símbolo separador de hora sensível à cultura. O formato invariante usa um caractere de dois pontos (":"). |
mm | Minutos, variando de 0 a 59. |
ss | Segundos opcionais, variando de 0 a 59. |
. | Um símbolo sensível à cultura que separa segundos de frações de um segundo. O formato invariável usa um caractere de ponto final ("."). |
ff | Segundos fracionários opcionais, consistindo em um a sete dígitos decimais. |
Os componentes do devem especificar coletivamente um intervalo de input
tempo maior ou igual a e menor ou igual a TimeSpan.MinValueTimeSpan.MaxValue.
O TryParse(String, IFormatProvider, TimeSpan) método tenta analisar input
usando cada um dos formatos específicos de cultura para a cultura especificada por formatProvider
.
O formatProvider
parâmetro é uma IFormatProvider implementação que fornece informações específicas da cultura sobre o formato da cadeia de caracteres retornada. O parâmetro formatProvider
pode ser um dos seguintes:
- Um objeto CultureInfo que representa a cultura cujas convenções de formatação devem ser refletidas na cadeia de caracteres retornada. O objeto DateTimeFormatInfo retornado pela propriedade CultureInfo.DateTimeFormat define a formatação da cadeia de caracteres retornada.
- Um objeto DateTimeFormatInfo que define a formatação da cadeia de caracteres retornada.
- Um objeto personalizado que implementa a interface IFormatProvider. O método IFormatProvider.GetFormat retorna um objeto DateTimeFormatInfo que fornece informações de formatação.
Caso formatProvider
seja null
, o objeto DateTimeFormatInfo que está associado à cultura atual é usado.
Notas aos chamadores
Em alguns casos, quando um componente de intervalo de tempo na cadeia de caracteres a ser analisada contém mais de sete dígitos, as operações de análise bem-sucedidas e retornadas true
no .NET Framework 3.5 e versões anteriores podem falhar e retornar false
no .NET Framework 4 e versões posteriores. O exemplo a seguir ilustra esse cenário:
string value = "000000006";
TimeSpan interval;
if (TimeSpan.TryParse(value, out interval))
Console.WriteLine("{0} --> {1}", value, interval);
else
Console.WriteLine("Unable to parse '{0}'", value);
// Output from .NET Framework 3.5 and earlier versions:
// 000000006 --> 6.00:00:00
// Output from .NET Framework 4:
// Unable to parse //000000006//
let value = "000000006"
match TimeSpan.TryParse value with
| true, interval ->
printfn $"{value} --> {interval}"
| _ ->
printfn $"Unable to parse '{value}'"
// Output from .NET Framework 3.5 and earlier versions:
// 000000006 --> 6.00:00:00
// Output from .NET Framework 4:
// Unable to parse //000000006//
Dim value As String = "000000006"
Dim interval As TimeSpan
If TimeSpan.TryParse(value, interval) Then
Console.WriteLine("{0} --> {1}", value, interval)
Else
Console.WriteLine("Unable to parse '{0}'", value)
End If
' Output from .NET Framework 3.5 and earlier versions:
' 000000006 --> 6.00:00:00
' Output from .NET Framework 4:
' Unable to parse '000000006'