Métodos System.TimeSpan.TryParse

Observação

Este artigo fornece observações complementares à documentação de referência para esta 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 parênteses retos ([ e ]) são opcionais. Uma seleção da lista de alternativas, que está entre chaves ({ e }) e separada por barras verticais (|), é necessária. A tabela a seguir descreve cada elemento.

Elemento Descrição
ws Espaço em branco opcional.
- Um sinal de menos opcional, que indica um valor negativo TimeSpan.
d Dias, variando de 0 a 10675199.
. Um símbolo sensível à cultura que separa os dias das horas. O formato invariante usa um caractere de ponto (".").
HH Horário, variando de 0 a 23.
: O símbolo do separador de tempo adaptado à cultura. O formato invariante usa o caractere 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 segundo. O formato invariante usa um caractere de ponto (".").
ff Segundos fracionários opcionais, consistindo de um a sete dígitos decimais.

Os componentes de s devem coletivamente especificar um intervalo de tempo maior ou igual a TimeSpan.MinValue e menor ou igual a TimeSpan.MaxValue.

O Parse(String) método tenta analisar s usando cada um dos formatos específicos da cultura para a cultura atual.

TryParse(String, IFormatProvider, TimeSpan) método

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 parênteses retos ([ e ]) são opcionais. Uma seleção da lista de alternativas, que está entre chaves ({ e }) e separada por barras verticais (|), é necessária. A tabela a seguir descreve cada elemento.

Elemento Descrição
ws Espaço em branco opcional.
- Um sinal de menos opcional, que indica um valor negativo TimeSpan.
d Dias, variando de 0 a 10675199.
. Um símbolo sensível à cultura que separa os dias das horas. O formato invariante usa um caractere de ponto (".").
HH Horário, variando de 0 a 23.
: O símbolo do separador de tempo adaptado à cultura. O formato invariante usa o caractere 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 segundo. O formato invariante usa um caractere de ponto (".").
ff Segundos fracionários opcionais, consistindo de um a sete dígitos decimais.

Os componentes de input devem especificar coletivamente um intervalo de tempo maior ou igual a TimeSpan.MinValue e menor ou igual a TimeSpan.MaxValue.

O TryParse(String, IFormatProvider, TimeSpan) método tenta analisar input usando cada um dos formatos específicos da cultura para a cultura especificada pelo 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 formatProvider parâmetro pode ser qualquer um dos seguintes:

Se formatProvider é null, o objeto DateTimeFormatInfo associado à cultura atual é usado.

Notas para quem telefona

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 que foram 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($"{value} --> {interval}");
else
   Console.WriteLine($"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//
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'