Compartir a través de


Métodos System.TimeSpan.TryParse

En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.

Método TryParse(System.String,System.TimeSpan@)

El TimeSpan.TryParse(String, TimeSpan) método es similar al TimeSpan.Parse(String) método , salvo que no produce una excepción si se produce un error en la conversión.

El s parámetro contiene una especificación de intervalo de tiempo con el formato :

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

Los elementos entre corchetes ([ y ]) son opcionales. Es obligatorio escoger una alternativa de la lista encerrada entre llaves ({ y }) y separada por barras verticales (|). En esta tabla se describe cada elemento.

Elemento Descripción
Ws Espacio en blanco opcional.
- Un signo menos opcional, que indica un TimeSpan negativo.
d Días comprendidos entre 0 y 10675199.
. Un símbolo sensible a la cultura que separa días de horas. El formato invariable usa un carácter de punto (".").
S.S Horas, entre 0 y 23.
: El símbolo separador de tiempo sensible a la cultura. El formato invariante utiliza un carácter de dos puntos (":").
milímetro Minutos, entre 0 y 59.
Ss Segundos opcionales, entre 0 y 59.
. Un símbolo sensible a la cultura que separa los segundos de las fracciones de un segundo. El formato invariable usa un carácter de punto (".").
ss Fracciones opcionales de segundos, que constan de uno a siete dígitos decimales.

Los componentes de s deben especificar colectivamente un intervalo de tiempo mayor o igual que TimeSpan.MinValue y menor o igual que TimeSpan.MaxValue.

El método Parse(String) intenta interpretar s utilizando cada uno de los formatos específicos de la cultura actual.

método TryParse(String, IFormatProvider, TimeSpan)

El TryParse(String, IFormatProvider, TimeSpan) método es similar al Parse(String, IFormatProvider) método , salvo que no produce una excepción si se produce un error en la conversión.

El input parámetro contiene una especificación de intervalo de tiempo con el formato :

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

Los elementos entre corchetes ([ y ]) son opcionales. Es obligatorio escoger una alternativa de la lista encerrada entre llaves ({ y }) y separada por barras verticales (|). En esta tabla se describe cada elemento.

Elemento Descripción
Ws Espacio en blanco opcional.
- Un signo menos opcional, que indica un TimeSpan negativo.
d Días comprendidos entre 0 y 10675199.
. Un símbolo sensible a la cultura que separa días de horas. El formato invariable usa un carácter de punto (".").
S.S Horas, entre 0 y 23.
: El símbolo separador de tiempo sensible a la cultura. El formato invariante utiliza un carácter de dos puntos (":").
milímetro Minutos, entre 0 y 59.
Ss Segundos opcionales, entre 0 y 59.
. Un símbolo sensible a la cultura que separa los segundos de las fracciones de un segundo. El formato invariable usa un carácter de punto (".").
ss Fracciones opcionales de segundos, que constan de uno a siete dígitos decimales.

Los componentes de input deben especificar colectivamente un intervalo de tiempo que sea mayor o igual a TimeSpan.MinValue y menor o igual a TimeSpan.MaxValue.

El método TryParse(String, IFormatProvider, TimeSpan) intenta parsear input utilizando cada uno de los formatos específicos de la cultura para la cultura especificada por formatProvider.

El formatProvider parámetro es una IFormatProvider implementación que proporciona información sobre la cultura específica respecto al formato de la cadena devuelta. El formatProvider parámetro puede ser cualquiera de los siguientes:

Si formatProvider es null, se usa el DateTimeFormatInfo objeto asociado a la referencia cultural actual.

Notas para los llamadores

En algunos casos, cuando un componente de intervalo de tiempo de la cadena que se va a analizar contiene más de siete dígitos, las operaciones de análisis que se realizaron correctamente y devolvieron true en .NET Framework 3.5 y versiones anteriores pueden producir un error y devolver false en .NET Framework 4 y versiones posteriores. En el ejemplo siguiente se muestra este escenario:

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'