Partilhar via


Cadeias de caracteres de formato TimeSpan padrão

Uma cadeia de caracteres de formato padrão TimeSpan usa um especificador de formato único para definir a representação de texto de um TimeSpan valor que resulta de uma operação de formatação. Qualquer cadeia de caracteres de formato que contenha mais de um caractere, incluindo espaço em branco, é interpretada como uma cadeia de caracteres de formato personalizado TimeSpan . Para obter mais informações, consulte Cadeias de caracteres de formato TimeSpan personalizadas.

As representações de valores de cadeia de TimeSpan caracteres são produzidas por chamadas para as sobrecargas do TimeSpan.ToString método, bem como por métodos que suportam formatação composta, como String.Format. Para obter mais informações, consulte Tipos de formatação e formatação composta. O exemplo a seguir ilustra o uso de cadeias de caracteres de formato padrão em operações de formatação.

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

As cadeias de caracteres de formato padrão TimeSpan também são usadas pelos TimeSpan.ParseExact métodos e TimeSpan.TryParseExact para definir o formato necessário de cadeias de caracteres de entrada para operações de análise. (A análise converte a representação de cadeia de caracteres de um valor nesse valor.) O exemplo a seguir ilustra o uso de cadeias de caracteres de formato padrão em operações de análise.

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

A tabela a seguir lista os especificadores de formato de intervalo de tempo padrão.

Especificador de formato Nome Descrição Exemplos
"c" Formato constante (invariante) Este especificador não é sensível à cultura. Assume a forma [-][d'.']hh':'mm':'ss['.'fffffff].

(As cadeias de caracteres de formato "t" e "T" produzem os mesmos resultados.)

Para obter mais informações: O 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 curto geral Este especificador produz apenas o que é necessário. É sensível à cultura e assume a forma [-][d':']h':'mm':'ss[.FFFFFFF].

Mais informações: O especificador de formato geral curto ("g").
New TimeSpan(1, 3, 16, 50, 500) -> 1:3:16:50.5 (pt-BR)

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 (pt-BR)

New TimeSpan(1, 3, 16, 50, 599) -> 1:3:16:50,599 (fr-FR)
"G" Formato longo geral Este especificador sempre produz dias e sete dígitos fracionários. É sensível à cultura e assume a forma [-]d':'hh':'mm':'ss.fffffff.

Para obter mais informações: O especificador de formato longo geral ("G").
New TimeSpan(18, 30, 0) -> 0:18:30:00.0000000 (pt-BR)

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

O especificador de formato constante ("c")

O especificador de formato "c" retorna a representação de cadeia de caracteres de um TimeSpan valor na seguinte forma:

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

Os elementos entre parênteses retos ([ e ]) são opcionais. O ponto (.) e os dois pontos (:) são símbolos literais. A tabela a seguir descreve os elementos restantes.

Elemento Description
- Um sinal negativo opcional, que indica um intervalo de tempo negativo.
d O número opcional de dias, sem zeros à esquerda.
hh O número de horas, que varia de "00" a "23".
mm O número de minutos, que varia de "00" a "59".
ss O número de segundos, que varia de "0" a "59".
fffffff A porção fracionária opcional de um segundo. Seu valor pode variar de "0000001" (um tick, ou um décimo milionésimo de segundo) a "9999999" (9.999.999 dez milionésimos de segundo, ou um segundo menos um tick).

Ao contrário dos especificadores de formato "g" e "G", o especificador de formato "c" não é sensível à cultura. Ele produz a representação de cadeia de caracteres de um TimeSpan valor que é invariante e que é comum a versões anteriores ao .NET Framework 4. "c" é a cadeia de caracteres de formato padrão TimeSpan , o método formata TimeSpan.ToString() um valor de intervalo de tempo usando a cadeia de caracteres de formato "c".

Nota

TimeSpan também suporta as cadeias de caracteres de formato padrão "t" e "T", que são idênticas em comportamento à cadeia de caracteres de formato padrão "c".

O exemplo a seguir instancia dois TimeSpan objetos, usa-os para executar operações aritméticas e exibe o resultado. Em cada caso, ele usa formatação composta para exibir o TimeSpan valor usando o especificador de formato "c".

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

O Especificador de Formato Geral Curto ("g")

O especificador de formato "g" TimeSpan retorna a representação de cadeia de caracteres de um TimeSpan valor em um formato compacto, incluindo apenas os elementos necessários. Tem a seguinte forma:

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

Os elementos entre parênteses retos ([ e ]) são opcionais. Os dois pontos (:) é um símbolo literal. A tabela a seguir descreve os elementos restantes.

Elemento Description
- Um sinal negativo opcional, que indica um intervalo de tempo negativo.
d O número opcional de dias, sem zeros à esquerda.
h O número de horas, que varia de "0" a "23", sem zeros à esquerda.
mm O número de minutos, que varia de "00" a "59".
ss O número de segundos, que varia de "00" a "59".
. O separador de segundos fracionários. É equivalente à propriedade da NumberDecimalSeparator cultura especificada sem substituições do usuário.
FFFFFFF Os segundos fracionários. O menor número possível de dígitos é exibido.

Como o especificador de formato "G", o especificador de formato "g" está localizado. Seu separador de segundos fracionários é baseado na cultura atual ou na propriedade de NumberDecimalSeparator uma cultura especificada.

O exemplo a seguir instancia dois TimeSpan objetos, usa-os para executar operações aritméticas e exibe o resultado. Em cada caso, ele usa formatação composta para exibir o TimeSpan valor usando o especificador de formato "g". Além disso, formata o TimeSpan valor usando as convenções de formatação da cultura do sistema atual (que, neste caso, é inglês - Estados Unidos ou en-US) e da cultura francesa - França (fr-FR).

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

O Especificador Geral de Formato Longo ("G")

O especificador de formato "G" TimeSpan retorna a representação de cadeia de caracteres de um TimeSpan valor em um formato longo que sempre inclui dias e segundos fracionários. A cadeia de caracteres que resulta do especificador de formato padrão "G" tem a seguinte forma:

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

Os elementos entre parênteses retos ([ e ]) são opcionais. Os dois pontos (:) é um símbolo literal. A tabela a seguir descreve os elementos restantes.

Elemento Description
- Um sinal negativo opcional, que indica um intervalo de tempo negativo.
d O número de dias, sem zeros à esquerda.
hh O número de horas, que varia de "00" a "23".
mm O número de minutos, que varia de "00" a "59".
ss O número de segundos, que varia de "00" a "59".
. O separador de segundos fracionários. É equivalente à propriedade da NumberDecimalSeparator cultura especificada sem substituições do usuário.
fffffff Os segundos fracionários.

Como o especificador de formato "G", o especificador de formato "g" está localizado. Seu separador de segundos fracionários é baseado na cultura atual ou na propriedade de NumberDecimalSeparator uma cultura especificada.

O exemplo a seguir instancia dois TimeSpan objetos, usa-os para executar operações aritméticas e exibe o resultado. Em cada caso, ele usa formatação composta para exibir o TimeSpan valor usando o especificador de formato "G". Além disso, formata o TimeSpan valor usando as convenções de formatação da cultura do sistema atual (que, neste caso, é inglês - Estados Unidos ou en-US) e da cultura francesa - França (fr-FR).

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

Consulte também