Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método TimeSpan.Parse (String, IFormatProvider)

 

Publicado: octubre de 2016

Convierte la representación de cadena de un intervalo de tiempo en su equivalente de TimeSpan, usando la información de formato específica de la referencia cultural especificada.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public static TimeSpan Parse(
	string input,
	IFormatProvider formatProvider
)

Parámetros

input
Type: System.String

Cadena que especifica el intervalo de tiempo que se va a convertir.

formatProvider
Type: System.IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural.

Valor devuelto

Type: System.TimeSpan

Intervalo de tiempo que corresponde a input de acuerdo con lo especificado por formatProvider.

Exception Condition
ArgumentNullException

El valor de input es null.

FormatException

input tiene un formato no válido.

OverflowException

input representa un número menor que TimeSpan.MinValue o mayor que TimeSpan.MaxValue.

O bien

Al menos uno de los componentes de días, horas, minutos o segundos de input está fuera del intervalo válido.

El input parámetro contiene una especificación de intervalo de tiempo en el formulario:

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

Elementos de corchetes ([y]) son opcionales; una selección en la lista de alternativas entre llaves ({y}) y separados por barras verticales (|) es necesario. En la tabla siguiente describe cada elemento.

Elemento

Descripción

eb

Espacio en blanco opcional.

-

Un signo opcional, lo que indica un negativo TimeSpan.

d

Días, comprendidos entre 0 y 10675199.

.

Un símbolo de cuenta de la referencia cultural que separa los días de horas. El valor predeterminado es un punto (".") .

hh

Horas, comprendido entre 0 y 23.

:

El símbolo de separador de hora de la cuenta de la referencia cultural.

mm

Minutos, comprendidos entre 0 y 59.

ss

Segundos opcionales, comprendidos entre 0 y 59.

.

Un símbolo de cuenta de la referencia cultural que separa los segundos de fracciones de segundo. El valor predeterminado es un punto (".") .

ff

Fracciones de segundo opcionales, que consta de uno a siete dígitos decimales.

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

El Parse(String) método intenta analizar input con cada uno de los formatos específicos de la referencia cultural para la referencia cultural especificada por formatProvider.

El formatProvider parámetro es un IFormatProvider implementación que proporciona información específica de la referencia cultural acerca del formato de la cadena devuelta. El formatProvider parámetro puede ser cualquiera de las siguientes acciones:

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

Notas para llamadores:

Cuando un componente de intervalo de tiempo en la cadena para analizarse contiene más de siete dígitos, las operaciones en el análisis del .NET Framework 3.5 y versiones anteriores pueden comportarse de manera diferente de las operaciones en un análisis del .NET Framework 4. En algunos casos, análisis de las operaciones que se realizan correctamente en el .NET Framework 3.5 y versiones anteriores pueden producir errores y producir un OverflowException en el .NET Framework 4. En otros casos, análisis de las operaciones que producen un FormatException en el .NET Framework 3.5 y versiones anteriores pueden producir errores y producir un OverflowException en el .NET Framework 4. En el ejemplo siguiente se ilustra ambos escenarios.

string[] values = { "000000006", "12.12:12:12.12345678" };
foreach (string value in values)
{
   try {
      TimeSpan interval = TimeSpan.Parse(value);
      Console.WriteLine("{0} --> {1}", value, interval);
   }   
   catch (FormatException) {
      Console.WriteLine("{0}: Bad Format", value);
   }   
   catch (OverflowException) {
      Console.WriteLine("{0}: Overflow", value);
   }
}
// Output from .NET Framework 3.5 and earlier versions:
//       000000006 --> 6.00:00:00
//       12.12:12:12.12345678: Bad Format      
// Output from .NET Framework 4:
//       000000006: Overflow
//       12.12:12:12.12345678: Overflow

En el ejemplo siguiente se define una matriz de CultureInfo objetos y cada objeto se utiliza en las llamadas a la Parse(String, IFormatProvider) método analizar los elementos en una matriz de cadenas. El ejemplo muestra cómo las convenciones de una referencia cultural concreta influyen en la operación de formato.

using System;
using System.Globalization;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] values = { "6", "6:12", "6:12:14", "6:12:14:45", 
                          "6.12:14:45", "6:12:14:45.3448", 
                          "6:12:14:45,3448", "6:34:14:45" };
      CultureInfo[] cultures = { new CultureInfo("en-US"), 
                                 new CultureInfo("ru-RU"),
                                 CultureInfo.InvariantCulture };

      string header = String.Format("{0,-17}", "String");
      foreach (CultureInfo culture in cultures)
         header += culture.Equals(CultureInfo.InvariantCulture) ? 
                      String.Format("{0,20}", "Invariant") :
                      String.Format("{0,20}", culture.Name);
      Console.WriteLine(header);
      Console.WriteLine();

      foreach (string value in values)
      {
         Console.Write("{0,-17}", value);
         foreach (CultureInfo culture in cultures)
         {
            try {
               TimeSpan ts = TimeSpan.Parse(value, culture);
               Console.Write("{0,20}", ts.ToString("c"));
            }
            catch (FormatException) {
               Console.Write("{0,20}", "Bad Format");
            }   
            catch (OverflowException) {
               Console.Write("{0,20}", "Overflow");
            }      
         }
         Console.WriteLine();                                
      }
   }
}
// The example displays the following output:
//    String                          en-US               ru-RU           Invariant
//    
//    6                          6.00:00:00          6.00:00:00          6.00:00:00
//    6:12                         06:12:00            06:12:00            06:12:00
//    6:12:14                      06:12:14            06:12:14            06:12:14
//    6:12:14:45                 6.12:14:45          6.12:14:45          6.12:14:45
//    6.12:14:45                 6.12:14:45          6.12:14:45          6.12:14:45
//    6:12:14:45.3448    6.12:14:45.3448000          Bad Format  6.12:14:45.3448000
//    6:12:14:45,3448            Bad Format  6.12:14:45.3448000          Bad Format
//    6:34:14:45                   Overflow            Overflow            Overflow

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 4.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 4.0
Windows Phone Silverlight
Disponible desde 7.1
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: