Compartilhar via


Métodos System.TimeSpan.TryParse

Este artigo fornece comentários 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 gera uma exceção se a conversão falhar.

O s parâmetro contém uma especificação de intervalo de tempo no formulário:

[ws][-]{ d | d.hh:mm[:ss[.ff]] | hh:mm[:ss[.ff]] }[ws]

Elementos em colchetes ([ e ]) são opcionais. É necessário selecionar uma alternativa da lista delimitada por chaves ({ e }) e separada por barras verticais (|). A tabela a seguir descreve cada elemento.

Elemento 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 (".").
Hh Horas, variando de 0 a 23.
: O símbolo separador de hora sensível à cultura. O formato invariável usa um caractere de dois-pontos (":").
milímetro Minutos, variando de 0 a 59.
ß Segundos opcionais, variando de 0 a 59.
. Um símbolo sensível à cultura que separa segundos de frações de segundo. O formato invariável usa um caractere de ponto (".").
Ff Segundos fracionários opcionais, consistindo de um a sete dígitos decimais.

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

O Parse(String) método tenta analisar/interpretar s usando os formatos específicos da 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 gera uma exceção se a conversão falhar.

O input parâmetro contém uma especificação de intervalo de tempo no formulário:

[ws][-]{ d | d.hh:mm[:ss[.ff]] | hh:mm[:ss[.ff]] }[ws]

Elementos em colchetes ([ e ]) são opcionais. É necessário selecionar uma alternativa da lista delimitada por chaves ({ e }) e separada por barras verticais (|). A tabela a seguir descreve cada elemento.

Elemento 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 (".").
Hh Horas, variando de 0 a 23.
: O símbolo separador de hora sensível à cultura. O formato invariável usa um caractere de dois-pontos (":").
milímetro Minutos, variando de 0 a 59.
ß Segundos opcionais, variando de 0 a 59.
. Um símbolo sensível à cultura que separa segundos de frações de segundo. O formato invariável 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 que 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 por formatProvider.

O formatProvider parâmetro é uma implementação IFormatProvider 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 estiver null, o DateTimeFormatInfo objeto associado à cultura atual será usado.

Notas para 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 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 este 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'