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:

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'