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 de los corchetes ([ y ]) son opcionales. Se requiere una selección de la lista de alternativas entre llaves ({ y }) y separadas 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 valor negativo TimeSpan.
d Días comprendidos entre 0 y 10675199.
. Símbolo que distingue la referencia cultural que separa días de horas. El formato invariable usa un carácter de punto (".").
hh Horas, entre 0 y 23.
: Símbolo separador de tiempo que distingue la referencia cultural. El formato invariable usa un carácter de dos puntos (":").
mm Minutos, entre 0 y 59.
ss Segundos opcionales, entre 0 y 59.
. Símbolo que distingue la referencia cultural que separa los segundos de las fracciones de un segundo. El formato invariable usa un carácter de punto (".").
ff 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 Parse(String) método intenta analizar s mediante cada uno de los formatos específicos de la referencia cultural para la referencia cultural 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 de los corchetes ([ y ]) son opcionales. Se requiere una selección de la lista de alternativas entre llaves ({ y }) y separadas 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 valor negativo TimeSpan.
d Días comprendidos entre 0 y 10675199.
. Símbolo que distingue la referencia cultural que separa días de horas. El formato invariable usa un carácter de punto (".").
hh Horas, entre 0 y 23.
: Símbolo separador de tiempo que distingue la referencia cultural. El formato invariable usa un carácter de dos puntos (":").
mm Minutos, entre 0 y 59.
ss Segundos opcionales, entre 0 y 59.
. Símbolo que distingue la referencia cultural que separa los segundos de las fracciones de un segundo. El formato invariable usa un carácter de punto (".").
ff Fracciones opcionales de segundos, que constan de uno a siete dígitos decimales.

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

El TryParse(String, IFormatProvider, TimeSpan) método intenta analizar input mediante cada uno de los formatos específicos de la referencia cultural para la referencia cultural especificada por formatProvider.

El formatProvider parámetro es una IFormatProvider implementación que proporciona información específica de la referencia cultural sobre el 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 a los autores de llamadas

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("{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'