Cadenas de formato TimeSpan estándarStandard TimeSpan Format Strings

Una cadena de formato estándar TimeSpan utiliza un único especificador de formato para definir la representación de texto de un valor TimeSpan resultante de una operación de formato.A standard TimeSpan format string uses a single format specifier to define the text representation of a TimeSpan value that results from a formatting operation. Cualquier cadena de formato que contenga más de un carácter, incluido el espacio en blanco, se interpreta como una cadena de formato TimeSpan personalizado.Any format string that contains more than one character, including white space, is interpreted as a custom TimeSpan format string. Para más información, consulte Custom TimeSpan Format Strings (Cadenas de formato TimeSpan personalizadas).For more information, see Custom TimeSpan Format Strings .

Las representaciones de cadena de los valores TimeSpan se generan mediante llamadas a las sobrecargas del método TimeSpan.ToString, y también mediante métodos que admiten formatos compuestos, como String.Format.The string representations of TimeSpan values are produced by calls to the overloads of the TimeSpan.ToString method, as well as by methods that support composite formatting, such as String.Format. Para obtener más información, consulte Aplicar formato a tipos y Formatos compuestos.For more information, see Formatting Types and Composite Formatting. En el siguiente ejemplo se muestra el uso de cadenas de formato estándar en operaciones de formato.The following example illustrates the use of standard format strings in formatting operations.

using System;

public class Example
{
   public static void Main()
   {
      TimeSpan duration = new TimeSpan(1, 12, 23, 62);
      string output = "Time of Travel: " + duration.ToString("c");
      Console.WriteLine(output);
      
      Console.WriteLine("Time of Travel: {0:c}", duration); 
   }
}
// The example displays the following output:
//       Time of Travel: 1.12:24:02
//       Time of Travel: 1.12:24:02
Module Example
   Public Sub Main()
      Dim duration As New TimeSpan(1, 12, 23, 62)
      Dim output As String = "Time of Travel: " + duration.ToString("c")
      Console.WriteLine(output)
      
      Console.WriteLine("Time of Travel: {0:c}", duration) 
   End Sub
End Module
' The example displays the following output:
'       Time of Travel: 1.12:24:02
'       Time of Travel: 1.12:24:02

Los métodos TimeSpan y TimeSpan.ParseExact también usan cadenas de formato TimeSpan.TryParseExact estándar para definir el formato que deben tener las cadenas de entrada de las operaciones de análisis.Standard TimeSpan format strings are also used by the TimeSpan.ParseExact and TimeSpan.TryParseExact methods to define the required format of input strings for parsing operations. (Estas operaciones convierten la representación de cadena de un valor en ese valor.) En el siguiente ejemplo, se muestra el uso de cadenas de formato estándar en operaciones de análisis.(Parsing converts the string representation of a value to that value.) The following example illustrates the use of standard format strings in parsing operations.

using System;

public class Example
{
   public static void Main()
   {
      string value = "1.03:14:56.1667";
      TimeSpan interval;
      try {
         interval = TimeSpan.ParseExact(value, "c", null);
         Console.WriteLine("Converted '{0}' to {1}", value, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("{0}: Bad Format", value);
      }   
      catch (OverflowException) {
         Console.WriteLine("{0}: Out of Range", value);
      }
      
      if (TimeSpan.TryParseExact(value, "c", null, out interval))
         Console.WriteLine("Converted '{0}' to {1}", value, interval);
      else
         Console.WriteLine("Unable to convert {0} to a time interval.", 
                           value);
   }
}
// The example displays the following output:
//       Converted '1.03:14:56.1667' to 1.03:14:56.1667000
//       Converted '1.03:14:56.1667' to 1.03:14:56.1667000
Module Example
   Public Sub Main()
      Dim value As String = "1.03:14:56.1667"
      Dim interval As TimeSpan
      Try
         interval = TimeSpan.ParseExact(value, "c", Nothing)
         Console.WriteLine("Converted '{0}' to {1}", value, interval)
      Catch e As FormatException
         Console.WriteLine("{0}: Bad Format", value)
      Catch e As OverflowException
         Console.WriteLine("{0}: Out of Range", value)
      End Try
      
      If TimeSpan.TryParseExact(value, "c", Nothing, interval) Then
         Console.WriteLine("Converted '{0}' to {1}", value, interval)
      Else
         Console.WriteLine("Unable to convert {0} to a time interval.", 
                           value)
      End If                
   End Sub
End Module
' The example displays the following output:
'       Converted '1.03:14:56.1667' to 1.03:14:56.1667000
'       Converted '1.03:14:56.1667' to 1.03:14:56.1667000

En la tabla siguiente se muestran los especificadores de formato de intervalo de tiempo estándar.The following table lists the standard time interval format specifiers.

Especificador de formatoFormat specifier nombreName DescripciónDescription EjemplosExamples
"c""c" Formato constante (invariable)Constant (invariant) format Este especificador no tiene en cuenta la referencia cultural.This specifier is not culture-sensitive. Toma la forma [-][d’.’]hh’:’mm’:’ss[‘.’fffffff].It takes the form [-][d’.’]hh’:’mm’:’ss[‘.’fffffff].

(Las cadenas de formato "t" y "T" producen los mismos resultados).(The "t" and "T" format strings produce the same results.)

Más información: Especificador de formato de constante ("c").More information: The Constant ("c") Format Specifier.
TimeSpan.Zero -> 00:00:00TimeSpan.Zero -> 00:00:00

New TimeSpan(0, 0, 30, 0) -> 00:30:00New TimeSpan(0, 0, 30, 0) -> 00:30:00

New TimeSpan(3, 17, 25, 30, 500) -> 3.17:25:30.5000000New TimeSpan(3, 17, 25, 30, 500) -> 3.17:25:30.5000000
"g""g" Formato corto generalGeneral short format Este especificador solo genera lo necesario.This specifier outputs only what is needed. Tiene en cuenta la referencia cultural y su forma es [-][d’:’]h’:’mm’:’ss[.FFFFFFF].It is culture-sensitive and takes the form [-][d’:’]h’:’mm’:’ss[.FFFFFFF].

Más información: Especificador de formato general corto ("g").More information: The General Short ("g") Format Specifier.
New TimeSpan(1, 3, 16, 50, 500) -> 1:3:16:50.5 (en-US)New TimeSpan(1, 3, 16, 50, 500) -> 1:3:16:50.5 (en-US)

New TimeSpan(1, 3, 16, 50, 500) -> 1:3:16:50,5 (fr-FR)New TimeSpan(1, 3, 16, 50, 500) -> 1:3:16:50,5 (fr-FR)

New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50.599 (en-US)New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50.599 (en-US)

New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50,599 (fr-FR)New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50,599 (fr-FR)
"G""G" Formato general largoGeneral long format Este especificador siempre genera días y siete dígitos fraccionarios.This specifier always outputs days and seven fractional digits. Tiene en cuenta la referencia cultural y su forma es [-]d’:’hh’:’mm’:’ss.fffffff.It is culture-sensitive and takes the form [-]d’:’hh’:’mm’:’ss.fffffff.

Más información: Especificador de formato general largo ("G").More information: The General Long ("G") Format Specifier.
New TimeSpan(18, 30, 0) -> 0:18:30:00.0000000 (en-US)New TimeSpan(18, 30, 0) -> 0:18:30:00.0000000 (en-US)

New TimeSpan(18, 30, 0) -> 0:18:30:00,0000000 (fr-FR)New TimeSpan(18, 30, 0) -> 0:18:30:00,0000000 (fr-FR)

Especificador de formato constante ("c")The Constant ("c") Format Specifier

El especificador de formato "c" devuelve la representación de cadena de un valor TimeSpan de la siguiente forma:The "c" format specifier returns the string representation of a TimeSpan value in the following form:

[-][d.]hh:mm:ss[.fffffff][-][d.]hh:mm:ss[.fffffff]

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. El punto (.) y los dos puntos (:) son símbolos literales.The period (.) and colon (:) are literal symbols. En la siguiente tabla se describen los elementos restantes.The following table describes the remaining elements.

ElementoElement DescripciónDescription
- Signo negativo opcional, que indica un intervalo de tiempo negativo.An optional negative sign, which indicates a negative time interval.
dd Número opcional de días, sin ceros a la izquierda.The optional number of days, with no leading zeros.
hhhh Número de horas, entre "00" y "23".The number of hours, which ranges from "00" to "23".
mmmm Número de minutos, entre "00" y "59".The number of minutes, which ranges from "00" to "59".
ssss Número de segundos, entre "00" y "59".The number of seconds, which ranges from "0" to "59".
ffffffffffffff La parte fraccionaria opcional de un segundo.The optional fractional portion of a second. Su valor puede oscilar entre "0000001" (un tic o una diez millonésima de segundo) y "9999999" (9.999.999 diez millonésimas de segundo, o un segundo menos un tic).Its value can range from "0000001" (one tick, or one ten-millionth of a second) to "9999999" (9,999,999 ten-millionths of a second, or one second less one tick).

A diferencia de los especificadores de formato de "g" y "G", el especificador de formato "c" no tiene en cuenta la referencia cultural.Unlike the "g" and "G" format specifiers, the "c" format specifier is not culture-sensitive. Produce la representación de cadena de un valor TimeSpan que es invariable y común a todas las versiones anteriores de la de.NET Framework previas a .NET Framework 4.NET Framework 4.It produces the string representation of a TimeSpan value that is invariant and that is common to all previous versions of the .NET Framework before the .NET Framework 4.NET Framework 4. "c" es la cadena de formato TimeSpan predeterminado; el método TimeSpan.ToString() da formato a un valor de intervalo de tiempo mediante la cadena de formato "c"."c" is the default TimeSpan format string; the TimeSpan.ToString() method formats a time interval value by using the "c" format string.

Nota

TimeSpan también admite las cadenas de formato estándar "t" y "T", cuyo comportamiento es idéntico al de la cadena de formato estándar "c".TimeSpan also supports the "t" and "T" standard format strings, which are identical in behavior to the "c" standard format string.

En el ejemplo siguiente se crea una instancia de dos objetos TimeSpan, que se usan para realizar operaciones aritméticas y se muestra el resultado.The following example instantiates two TimeSpan objects, uses them to perform arithmetic operations, and displays the result. En cada caso, se utiliza un formato compuesto para mostrar el valor TimeSpan mediante el especificador de formato "c".In each case, it uses composite formatting to display the TimeSpan value by using the "c" format specifier.

using System;

public class Example
{
   public static void Main()
   {
      TimeSpan interval1, interval2;
      interval1 = new TimeSpan(7, 45, 16);
      interval2 = new TimeSpan(18, 12, 38);
      
      Console.WriteLine("{0:c} - {1:c} = {2:c}", interval1, 
                        interval2, interval1 - interval2);
      Console.WriteLine("{0:c} + {1:c} = {2:c}", interval1, 
                        interval2, interval1 + interval2);
      
      interval1 = new TimeSpan(0, 0, 1, 14, 365);
      interval2 = TimeSpan.FromTicks(2143756);  
      Console.WriteLine("{0:c} + {1:c} = {2:c}", interval1, 
                        interval2, interval1 + interval2);
   }
}
// The example displays the following output:
//       07:45:16 - 18:12:38 = -10:27:22
//       07:45:16 + 18:12:38 = 1.01:57:54
//       00:01:14.3650000 + 00:00:00.2143756 = 00:01:14.5793756
Module Example
   Public Sub Main()
      Dim interval1, interval2 As TimeSpan
      interval1 = New TimeSpan(7, 45, 16)
      interval2 = New TimeSpan(18, 12, 38)
      
      Console.WriteLine("{0:c} - {1:c} = {2:c}", interval1, 
                        interval2, interval1 - interval2)
      Console.WriteLine("{0:c} + {1:c} = {2:c}", interval1, 
                        interval2, interval1 + interval2)
      
      interval1 = New TimeSpan(0, 0, 1, 14, 365)
      interval2 = TimeSpan.FromTicks(2143756)      
      Console.WriteLine("{0:c} + {1:c} = {2:c}", interval1, 
                        interval2, interval1 + interval2)
   End Sub
End Module
' The example displays the following output:
'       07:45:16 - 18:12:38 = -10:27:22
'       07:45:16 + 18:12:38 = 1.01:57:54
'       00:01:14.3650000 + 00:00:00.2143756 = 00:01:14.5793756

Volver a la tablaBack to table

Especificador de formato corto general ("g")The General Short ("g") Format Specifier

El especificador de formato TimeSpan "g" devuelve la representación de cadena de un valor TimeSpan en una forma compacta, incluyendo únicamente los elementos que sean necesarios.The "g" TimeSpan format specifier returns the string representation of a TimeSpan value in a compact form by including only the elements that are necessary. Tiene la forma siguiente:It has the following form:

[-][d:]h:mm:ss[.FFFFFFF][-][d:]h:mm:ss[.FFFFFFF]

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. Los dos puntos (:) son un símbolo literal.The colon (:) is a literal symbol. En la siguiente tabla se describen los elementos restantes.The following table describes the remaining elements.

ElementoElement DescripciónDescription
- Signo negativo opcional, que indica un intervalo de tiempo negativo.An optional negative sign, which indicates a negative time interval.
dd Número opcional de días, sin ceros a la izquierda.The optional number of days, with no leading zeros.
hh El número de horas, entre "0" a "23", sin ceros a la izquierda.The number of hours, which ranges from "0" to "23", with no leading zeros.
mmmm Número de minutos, entre "00" y "59".The number of minutes, which ranges from "00" to "59"..
ssss Número de segundos, entre "00" y "59".The number of seconds, which ranges from "00" to "59"..
.. Separador de fracciones de segundo.The fractional seconds separator. Es equivalente a la propiedad NumberDecimalSeparator de la referencia cultural especificada sin invalidaciones del usuario.It is equivalent to the specified culture's NumberDecimalSeparator property without user overrides.
FFFFFFFFFFFFFF Fracciones de segundo.The fractional seconds. Se muestra la menor cantidad de dígitos posible.As few digits as possible are displayed.

Al igual que el especificador de formato "G", el especificador de formato "g" se localiza.Like the "G" format specifier, the "g" format specifier is localized. Su separador de fracciones de segundo se basa en la referencia cultural actual o en la propiedad NumberDecimalSeparator de una referencia cultural especificada.Its fractional seconds separator is based on either the current culture or a specified culture's NumberDecimalSeparator property.

En el ejemplo siguiente se crea una instancia de dos objetos TimeSpan, que se usan para realizar operaciones aritméticas y se muestra el resultado.The following example instantiates two TimeSpan objects, uses them to perform arithmetic operations, and displays the result. En cada caso, se utiliza un formato compuesto para mostrar el valor TimeSpan mediante el especificador de formato "g".In each case, it uses composite formatting to display the TimeSpan value by using the "g" format specifier. Además, se da formato al valor TimeSpan mediante las convenciones de formato de la referencia cultural del sistema actual (que, en este caso, es inglés - Estados Unidos o en-US) y la referencia cultural de Francia de francés (fr-FR).In addition, it formats the TimeSpan value by using the formatting conventions of the current system culture (which, in this case, is English - United States or en-US) and the French - France (fr-FR) culture.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      TimeSpan interval1, interval2;
      interval1 = new TimeSpan(7, 45, 16);
      interval2 = new TimeSpan(18, 12, 38);
      
      Console.WriteLine("{0:g} - {1:g} = {2:g}", interval1, 
                        interval2, interval1 - interval2);
      Console.WriteLine(String.Format(new CultureInfo("fr-FR"), 
                        "{0:g} + {1:g} = {2:g}", interval1, 
                        interval2, interval1 + interval2));
      
      interval1 = new TimeSpan(0, 0, 1, 14, 36);
      interval2 = TimeSpan.FromTicks(2143756);      
      Console.WriteLine("{0:g} + {1:g} = {2:g}", interval1, 
                        interval2, interval1 + interval2);
   }
}
// The example displays the following output:
//       7:45:16 - 18:12:38 = -10:27:22
//       7:45:16 + 18:12:38 = 1:1:57:54
//       0:01:14.036 + 0:00:00.2143756 = 0:01:14.2503756
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim interval1, interval2 As TimeSpan
      interval1 = New TimeSpan(7, 45, 16)
      interval2 = New TimeSpan(18, 12, 38)
      
      Console.WriteLine("{0:g} - {1:g} = {2:g}", interval1, 
                        interval2, interval1 - interval2)
      Console.WriteLine(String.Format(New CultureInfo("fr-FR"), 
                        "{0:g} + {1:g} = {2:g}", interval1, 
                        interval2, interval1 + interval2))
      
      interval1 = New TimeSpan(0, 0, 1, 14, 36)
      interval2 = TimeSpan.FromTicks(2143756)      
      Console.WriteLine("{0:g} + {1:g} = {2:g}", interval1, 
                        interval2, interval1 + interval2)
   End Sub
End Module
' The example displays the following output:
'       7:45:16 - 18:12:38 = -10:27:22
'       7:45:16 + 18:12:38 = 1:1:57:54
'       0:01:14.036 + 0:00:00.2143756 = 0:01:14.2503756

Volver a la tablaBack to table

Especificador de formato largo general ("G")The General Long ("G") Format Specifier

El especificador de formato TimeSpan "G" devuelve la representación de cadena de un valor TimeSpan en un formato largo que siempre incluye los días y las fracciones de segundo.The "G" TimeSpan format specifier returns the string representation of a TimeSpan value in a long form that always includes both days and fractional seconds. La cadena resultante del especificador de formato estándar "G" tiene la forma siguiente:The string that results from the "G" standard format specifier has the following form:

[-]d:hh:mm:ss.fffffff[-]d:hh:mm:ss.fffffff

Los elementos de los corchetes ([ y ]) son opcionales.Elements in square brackets ([ and ]) are optional. Los dos puntos (:) son un símbolo literal.The colon (:) is a literal symbol. En la siguiente tabla se describen los elementos restantes.The following table describes the remaining elements.

ElementoElement DescripciónDescription
- Signo negativo opcional, que indica un intervalo de tiempo negativo.An optional negative sign, which indicates a negative time interval.
dd Número de días, sin ceros a la izquierda.The number of days, with no leading zeros.
hhhh Número de horas, entre "00" y "23".The number of hours, which ranges from "00" to "23".
mmmm Número de minutos, entre "00" y "59".The number of minutes, which ranges from "00" to "59".
ssss Número de segundos, entre "00" y "59".The number of seconds, which ranges from "00" to "59".
.. Separador de fracciones de segundo.The fractional seconds separator. Es equivalente a la propiedad NumberDecimalSeparator de la referencia cultural especificada sin invalidaciones del usuario.It is equivalent to the specified culture's NumberDecimalSeparator property without user overrides.
ffffffffffffff Fracciones de segundo.The fractional seconds.

Al igual que el especificador de formato "G", el especificador de formato "g" se localiza.Like the "G" format specifier, the "g" format specifier is localized. Su separador de fracciones de segundo se basa en la referencia cultural actual o en la propiedad NumberDecimalSeparator de una referencia cultural especificada.Its fractional seconds separator is based on either the current culture or a specified culture's NumberDecimalSeparator property.

En el ejemplo siguiente se crea una instancia de dos objetos TimeSpan, que se usan para realizar operaciones aritméticas y se muestra el resultado.The following example instantiates two TimeSpan objects, uses them to perform arithmetic operations, and displays the result. En cada caso, se utiliza un formato compuesto para mostrar el valor TimeSpan mediante el especificador de formato "G".In each case, it uses composite formatting to display the TimeSpan value by using the "G" format specifier. Además, se da formato al valor TimeSpan mediante las convenciones de formato de la referencia cultural del sistema actual (que, en este caso, es inglés - Estados Unidos o en-US) y la referencia cultural de Francia de francés (fr-FR).In addition, it formats the TimeSpan value by using the formatting conventions of the current system culture (which, in this case, is English - United States or en-US) and the French - France (fr-FR) culture.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      TimeSpan interval1, interval2;
      interval1 = new TimeSpan(7, 45, 16);
      interval2 = new TimeSpan(18, 12, 38);
      
      Console.WriteLine("{0:G} - {1:G} = {2:G}", interval1, 
                        interval2, interval1 - interval2);
      Console.WriteLine(String.Format(new CultureInfo("fr-FR"), 
                        "{0:G} + {1:G} = {2:G}", interval1, 
                        interval2, interval1 + interval2));
      
      interval1 = new TimeSpan(0, 0, 1, 14, 36);
      interval2 = TimeSpan.FromTicks(2143756);      
      Console.WriteLine("{0:G} + {1:G} = {2:G}", interval1, 
                        interval2, interval1 + interval2);
   }
}
// The example displays the following output:
//       0:07:45:16.0000000 - 0:18:12:38.0000000 = -0:10:27:22.0000000
//       0:07:45:16,0000000 + 0:18:12:38,0000000 = 1:01:57:54,0000000
//       0:00:01:14.0360000 + 0:00:00:00.2143756 = 0:00:01:14.2503756
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim interval1, interval2 As TimeSpan
      interval1 = New TimeSpan(7, 45, 16)
      interval2 = New TimeSpan(18, 12, 38)
      
      Console.WriteLine("{0:G} - {1:G} = {2:G}", interval1, 
                        interval2, interval1 - interval2)
      Console.WriteLine(String.Format(New CultureInfo("fr-FR"), 
                        "{0:G} + {1:G} = {2:G}", interval1, 
                        interval2, interval1 + interval2))
      
      interval1 = New TimeSpan(0, 0, 1, 14, 36)
      interval2 = TimeSpan.FromTicks(2143756)      
      Console.WriteLine("{0:G} + {1:G} = {2:G}", interval1, 
                        interval2, interval1 + interval2)
   End Sub
End Module
' The example displays the following output:
'       0:07:45:16.0000000 - 0:18:12:38.0000000 = -0:10:27:22.0000000
'       0:07:45:16,0000000 + 0:18:12:38,0000000 = 1:01:57:54,0000000
'       0:00:01:14.0360000 + 0:00:00:00.2143756 = 0:00:01:14.2503756

Volver a la tablaBack to table

Vea tambiénSee also