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.ParseExact (String, String[], IFormatProvider, TimeSpanStyles)

 

Publicado: octubre de 2016

Convierte la representación de cadena de un intervalo de tiempo en su equivalente de TimeSpan, usando los formatos y los estilos especificados, y la información de formato específica de la referencia cultural. El formato de la representación de cadena debe coincidir exactamente con uno de los formatos especificados.

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

public static TimeSpan ParseExact(
	string input,
	string[] formats,
	IFormatProvider formatProvider,
	TimeSpanStyles styles
)

Parámetros

input
Type: System.String

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

formats
Type: System.String[]

Matriz de cadenas de formato estándar o personalizado que define el formato necesario de input.

formatProvider
Type: System.IFormatProvider

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

styles
Type: System.Globalization.TimeSpanStyles

Combinación bit a bit de valores de enumeración que define los elementos de estilo que pueden estar presentes en input.

Valor devuelto

Type: System.TimeSpan

Intervalo de tiempo que corresponde a input, de acuerdo con lo especificado por formats, formatProvider y styles.

Exception Condition
ArgumentException

styles es un valor de TimeSpanStyles no válido.

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 ParseExact(String, String[], IFormatProvider, TimeSpanStyles) método analiza la representación de cadena de un intervalo de tiempo que debe estar en uno de los formatos definidos por el formats parámetro, excepto los caracteres de espacio en blanco que iniciales y finales se omiten. Dado que input debe coincidir exactamente con uno de los formatos especificados en formats, debe utilizar siempre el control de excepciones al convertir una cadena especificada por el usuario en un intervalo de tiempo. Si prefiere no utilizar el control de excepciones, puede llamar a la TryParseExact(String, String[], IFormatProvider, TimeSpanStyles, TimeSpan) método en su lugar.

El formats parámetro es una matriz de cadena cuyos elementos constan de un especificador de formato estándar único o uno o varios especificadores de formato personalizado que definen el formato requerido de input. Para obtener más información acerca de las cadenas de formato válidos, vea Cadenas de formato TimeSpan estándar y Cadenas de formato TimeSpan personalizado. input debe corresponder exactamente a un miembro de formats para la operación de análisis se realice correctamente. La operación de análisis que se intenta hacer coincidir input a cada elemento de formats empezando por el primer elemento de la matriz.

System_CAPS_importantImportante

El ParseExact método usa las convenciones de la referencia cultural especificada por el formatProvider parámetro solo si la cadena de formato que se usa para analizar input es un estándar TimeSpan formato de cadena cuyo valor es "g" o "G". Las cadenas de formato estándar "T", "c" y "t" usan las convenciones de formato de la referencia cultural invariable. Cadenas de formato personalizado definen el formato exacto de la cadena de entrada y utilice caracteres literales para separar los componentes de un intervalo de tiempo.

El formatProvider parámetro es un IFormatProvider implementación que proporciona información específica de la referencia cultural sobre el formato de la cadena devuelta si la cadena de formato que se usa para analizar input es una cadena de formato estándar. El formatProvider parámetro puede ser cualquiera de los siguientes:

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

El styles parámetro afecta a la interpretación de cadenas analizadas usando las cadenas de formato personalizado. Determina si input se interpreta como un intervalo de tiempo negativo solo si está presente un signo negativo (TimeSpanStyles.None), o si siempre se interpreta como un intervalo de tiempo negativo (TimeSpanStyles.AssumeNegative). Si TimeSpanStyles.AssumeNegative no se utiliza, format debe incluir un símbolo de signo negativo literal (como "\-") para analizar correctamente el intervalo de tiempo negativo.

El ejemplo siguiente se llama el ParseExact(String, String[], IFormatProvider, TimeSpanStyles) método para convertir cada elemento de una matriz de cadenas a un TimeSpan valor. Las cadenas pueden representar un intervalo de tiempo en el formato corto general o en el formato largo general.

Además, el ejemplo cambia la manera en que los métodos de análisis de intervalo de tiempo interpretan un único dígito. Normalmente, un solo dígito se interpreta como el número de días en un intervalo de tiempo. En su lugar, el %h cadena de formato personalizado se usa para interpretar un dígito único como el número de horas. Para que este cambio sea efectivo, tenga en cuenta que el %h cadena de formato personalizado debe preceder a las otras cadenas de formato en el formats matriz. Tenga en cuenta también de la salida que el TimeSpanStyles.AssumeNegative marca especificada en la llamada al método sólo se utiliza al analizar una cadena con este especificador de formato.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] inputs = { "3", "16:42", "1:6:52:35.0625", 
                          "1:6:52:35,0625" }; 
      string[] formats = { "%h", "g", "G" };
      TimeSpan interval;
      CultureInfo culture = new CultureInfo("de-DE");

      // Parse each string in inputs using formats and the de-DE culture.
      foreach (string input in inputs) {
         try {
            interval = TimeSpan.ParseExact(input, formats, culture,
                                           TimeSpanStyles.AssumeNegative);
            Console.WriteLine("{0} --> {1:c}", input, interval);
         }
         catch (FormatException) {
            Console.WriteLine("{0} --> Bad Format", input);
         }      
         catch (OverflowException) {
            Console.WriteLine("{0} --> Overflow", input);   
         }            
      }
   }
}
// The example displays the following output:
//       3 --> -03:00:00
//       16:42 --> 16:42:00
//       1:6:52:35.0625 --> Bad Format
//       1:6:52:35,0625 --> 1.06:52:35.0625000

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: