Cadenas de formato TimeSpan estándar
Una cadena de formato TimeSpan estándar usa un único especificador de formato para definir la representación de texto de un valor TimeSpan que resulta de una operación de formato. Cualquier cadena de formato que contenga más de un carácter, incluido un espacio en blanco, se interpreta como una cadena de formato TimeSpan personalizado. Para obtener más información, vea Cadenas de formato TimeSpan personalizado.
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. Para obtener más información, vea Aplicar formato a tipos y Formatos compuestos. En el siguiente ejemplo, se muestra el uso de cadenas de formato estándar en operaciones de formato.
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
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
Los métodos TimeSpan.ParseExact y TimeSpan.TryParseExact también usan cadenas de formato TimeSpan estándar para definir el formato que deben tener las cadenas de entrada de las operaciones de análisis. (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.
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
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
En la tabla siguiente se describen los especificadores de formato de intervalo de tiempo estándar.
Especificador de formato |
Nombre |
Descripción |
Ejemplos |
---|---|---|---|
"c" |
Formato constante (invariable) |
Este especificador no tiene en cuenta la referencia cultural. Tiene el formato [-][d’.’]hh’:’mm’:’ss[‘.’fffffff]. (Las cadenas de formato "t" y "T" generan los mismos resultados.) Más información: Especificador de formato constante ("c"). |
TimeSpan.Zero -> 00:00:00 New TimeSpan(0, 0, 30, 0) -> 00:30:00 New TimeSpan(3, 17, 25, 30, 500) -> 3.17:25:30.5000000 |
"g" |
Formato corto general |
Este especificador solo muestra lo que se necesita. Tiene en cuenta la referencia cultural y su formato es [-][d’:’]h’:’mm’:’ss[.FFFFFFF]. Más información: Especificador de formato corto general ("g"). |
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, 599) -> 1:3:16:50.599 (en-US) New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50,599 (fr-FR) |
"G" |
Formato largo general |
Este especificador siempre genera días y siete dígitos fraccionarios. Tiene en cuenta la referencia cultural y su formato es [-]d’:’hh’:’mm’:’ss.fffffff. Más información: Especificador de formato largo general ("G"). |
New TimeSpan(18, 30, 0) -> 0:18:30:00.0000000 (en-US) New TimeSpan(18, 30, 0) -> 0:18:30:00,0000000 (fr-FR) |
Especificador de formato constante ("c")
El especificador de formato "c" devuelve la representación de cadena de un valor TimeSpan con el siguiente formato:
[-][d.]hh:mm:ss[.fffffff]
Los elementos entre corchetes ([ y ]) son opcionales. El punto (.) y el signo de dos puntos (:) son símbolos literales. En la tabla siguiente, se describen los elementos restantes.
Elemento |
Descripción |
---|---|
- |
Signo negativo opcional, que indica un intervalo de tiempo negativo. |
d |
Número opcional de días, sin ceros iniciales. |
hh |
Número de horas, de "00" a "23". |
mm |
Número de minutos, de "00" a "59". |
ss |
Número de segundos, de "0" a "59". |
fffffff |
Número opcional de milisegundos, de "0010000" a "9990000". |
A diferencia de los especificadores de formato "g" y "G", el especificador de formato "c" no tiene en cuenta la referencia cultural. Genera la representación de cadena de un valor TimeSpan que es invariable y común a todas las versiones de .NET Framework anteriores a .NET Framework versión 4. " c" es la cadena de formato predeterminada de TimeSpan; el método TimeSpan.ToString() da formato a un valor de intervalo de tiempo mediante la cadena de formato "c".
Nota |
---|
TimeSpan también admite las cadenas de formato estándar "t" y "T", que tienen el mismo comportamiento que la cadena de formato estándar "c". |
En el siguiente ejemplo, se crean instancias de dos objetos TimeSpan, se usan dichas instancias para realizar operaciones aritméticas y se muestra el resultado. En ambos casos, se utiliza un formato compuesto para mostrar el valor TimeSpan con el especificador de formato "c".
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
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
Volver a la tabla
Especificador de formato corto general ("g")
El especificador de formato "g" de TimeSpan devuelve la representación de cadena de un valor TimeSpan con un formato compacto ya que incluye solo los elementos necesarios. Tiene el formato siguiente:
[-][d:]h:mm:ss[.FFFFFFF]
Los elementos entre corchetes ([ y ]) son opcionales. El signo de dos puntos (:) es un símbolo literal. En la tabla siguiente, se describen los elementos restantes.
Elemento |
Descripción |
---|---|
- |
Signo negativo opcional, que indica un intervalo de tiempo negativo. |
d |
Número opcional de días, sin ceros iniciales. |
h |
Número de horas, de "0" a "23", sin ceros iniciales. |
mm |
Número de minutos, de "00" a "59". |
ss |
Número de segundos, de "00" a "59". |
. |
Separador de fracciones de segundo. Equivale a la propiedad NumberDecimalSeparator de la referencia cultural especificada sin reemplazos por parte del usuario. |
FFFFFFF |
Fracciones de segundo. Se muestra el menor número de dígitos posible. |
Al igual que el especificador de formato "G", se localiza el especificador de formato "g". Su separador de fracciones de segundo se basa en la referencia cultural actual o en la propiedad NumberDecimalSeparator de la referencia cultural especificada.
En el siguiente ejemplo, se crean instancias de dos objetos TimeSpan, se usan dichas instancias para realizar operaciones aritméticas y se muestra el resultado. En ambos casos, se utiliza un formato compuesto para mostrar el valor TimeSpan con el especificador de formato "g". Además, da formato al valor TimeSpan según las convenciones de formato de la actual referencia cultural del sistema (en este caso, Inglés - Estados Unidos o en-US) y de la referencia cultural Francés - Francia (fr-FR).
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
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
Volver a la tabla
Especificador de formato largo general ("G")
El especificador de formato "G" de TimeSpan devuelve la representación de cadena de un valor TimeSpan con un formato largo que siempre incluye los días y las fracciones de segundo. La cadena generada por el especificador de formato estándar "G" tiene el siguiente formato:
[-]d:hh:mm:ss.fffffff
Los elementos entre corchetes ([ y ]) son opcionales. El signo de dos puntos (:) es un símbolo literal. En la tabla siguiente, se describen los elementos restantes.
Elemento |
Descripción |
---|---|
- |
Signo negativo opcional, que indica un intervalo de tiempo negativo. |
d |
Número de días, sin ceros iniciales. |
hh |
Número de horas, de "00" a "23". |
mm |
Número de minutos, de "00" a "59". |
ss |
Número de segundos, de "00" a "59". |
. |
Separador de fracciones de segundo. Equivale a la propiedad NumberDecimalSeparator de la referencia cultural especificada sin reemplazos por parte del usuario. |
fffffff |
Fracciones de segundo. |
Al igual que el especificador de formato "G", se localiza el especificador de formato "g". Su separador de fracciones de segundo se basa en la referencia cultural actual o en la propiedad NumberDecimalSeparator de la referencia cultural especificada.
En el siguiente ejemplo, se crean instancias de dos objetos TimeSpan, se usan dichas instancias para realizar operaciones aritméticas y se muestra el resultado. En ambos casos, se utiliza un formato compuesto para mostrar el valor TimeSpan con el especificador de formato "G". Además, da formato al valor TimeSpan según las convenciones de formato de la actual referencia cultural del sistema (en este caso, Inglés - Estados Unidos o en-US) y de la referencia cultural Francés - Francia (fr-FR).
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
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
Volver a la tabla