Standardní řetězce formátu TimeSpan

Standardní TimeSpan formátovací řetězec používá specifikátor jednoho formátu k definování textové reprezentace TimeSpan hodnoty, která je výsledkem operace formátování. Jakýkoli formátovací řetězec, který obsahuje více než jeden znak, včetně prázdných znaků, se interpretuje jako řetězec vlastního TimeSpan formátu. Další informace naleznete v tématu Vlastní řetězce formátu TimeSpan.

Řetězcové reprezentace hodnot jsou vytvářeny TimeSpan voláním přetížení TimeSpan.ToString metody, stejně jako metodami, které podporují složené formátování, například String.Format. Další informace naleznete v tématu Typy formátování a složené formátování. Následující příklad ukazuje použití standardních formátovacích řetězců v operacích formátování.

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

Standardní TimeSpan formátovací řetězce jsou také používány TimeSpan.ParseExact metodami a TimeSpan.TryParseExact definují požadovaný formát vstupních řetězců pro operace analýzy. (Analýza převede řetězcovou reprezentaci hodnoty na danou hodnotu.) Následující příklad znázorňuje použití standardních formátovacích řetězců při parsování operací.

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

Následující tabulka uvádí specifikátory standardního formátu časového intervalu.

Specifikátor formátu Název Popis Příklady
"c" Konstantní (invariantní) formát Tento specifikátor není citlivý na jazykovou verzi. Má tvar [-][d'.']hh':'mm':'ss['.'fffffff].

(Řetězce formátu "t" a "T" vytvoří stejné výsledky.)

Další informace: Specifikátor formátu konstanty ("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" Obecný krátký formát Tento specifikátor vypíše jenom to, co je potřeba. Je citlivá na kulturu a má formu [-][d':']h':'mm':'ss[.FFFFFFF].

Další informace: Specifikátor formátu General Short ("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" Obecný dlouhý formát Tento specifikátor vždy vypíše dny a sedm desetinných číslic. Je citlivá na kulturu a má formu [-]d':'hh':'mm':'ss.fffffff.

Další informace: Specifikátor formátu General Long ("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)

Specifikátor formátu konstanty ("c")

Specifikátor formátu "c" vrátí řetězcovou TimeSpan reprezentaci hodnoty v následující podobě:

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

Prvky v hranatých závorkách ([ a ]) jsou volitelné. Tečka (.) a dvojtečka (:) jsou literály. Následující tabulka popisuje zbývající prvky.

Element (Prvek) Popis
- Volitelné záporné znaménko, které označuje záporný časový interval.
d Volitelný počet dní bez počátečních nul.
hh Počet hodin, které se pohybuje od "00" do "23".
mm Počet minut, které se pohybuje od "00" do "59".
ss Počet sekund, který se pohybuje od "0" do "59".
fffffff Volitelná zlomková část sekundy. Jeho hodnota může být v rozsahu od "0000001" (jeden klíště nebo jeden deset milionů sekund) až po "9999999" (9 999 999 999 desetiminutových sekund nebo jednu sekundu menšího.

Na rozdíl od specifikátorů formátu "g" a "G" není specifikátor formátu "c" citlivý na jazykovou verzi. Vytvoří řetězcovou TimeSpan reprezentaci hodnoty, která je invariantní a která je společná pro verze před rozhraním .NET Framework 4. "c" je výchozí TimeSpan formátovací řetězec; TimeSpan.ToString() metoda formátuje hodnotu časového intervalu pomocí řetězce formátu "c".

Poznámka:

TimeSpan také podporuje standardní formátovací řetězce "t" a "T", které jsou identické v chování jako řetězec standardního formátu "c".

Následující příklad vytvoří instanci dvou TimeSpan objektů, použije je k provádění aritmetických operací a zobrazí výsledek. V každém případě používá složené formátování k zobrazení TimeSpan hodnoty pomocí specifikátoru formátu "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

Specifikátor obecného krátkého formátu ("g")

Specifikátor formátu "g" TimeSpan vrátí řetězcovou TimeSpan reprezentaci hodnoty v kompaktní podobě zahrnutím pouze prvků, které jsou nezbytné. Má následující formulář:

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

Prvky v hranatých závorkách ([ a ]) jsou volitelné. Dvojtečka (:) je literálový symbol. Následující tabulka popisuje zbývající prvky.

Element (Prvek) Popis
- Volitelné záporné znaménko, které označuje záporný časový interval.
d Volitelný počet dní bez počátečních nul.
h Počet hodin, které se pohybuje od "0" do "23", bez počátečních nul.
mm Počet minut, které se pohybuje od "00" do "59".
ss Počet sekund, který se pohybuje od "00" do "59".
. Oddělovač desetinné sekundy. Je ekvivalentní vlastnosti zadané jazykové verze NumberDecimalSeparator bez přepsání uživatele.
FFFFFFF Zlomkové sekundy. Zobrazí se co nejvíce číslic.

Stejně jako specifikátor formátu "G" je specifikátor formátu "g" lokalizován. Oddělovač desetinné sekundy je založen na aktuální jazykové verzi nebo na vlastnosti zadané jazykové verze NumberDecimalSeparator .

Následující příklad vytvoří instanci dvou TimeSpan objektů, použije je k provádění aritmetických operací a zobrazí výsledek. V každém případě používá složené formátování k zobrazení TimeSpan hodnoty pomocí specifikátoru formátu "g". Kromě toho formátuje TimeSpan hodnotu pomocí konvencí formátování aktuální jazykové verze systému (což je v tomto případě angličtina - USA nebo en-US) a francouzská - Francie (fr-FR) kultura.

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

Specifikátor obecného formátu Long ("G")

Specifikátor formátu "G" TimeSpan vrátí řetězcovou TimeSpan reprezentaci hodnoty v dlouhé podobě, která vždy obsahuje dny i zlomkové sekundy. Řetězec, který je výsledkem specifikátoru standardního formátu "G", má následující tvar:

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

Prvky v hranatých závorkách ([ a ]) jsou volitelné. Dvojtečka (:) je literálový symbol. Následující tabulka popisuje zbývající prvky.

Element (Prvek) Popis
- Volitelné záporné znaménko, které označuje záporný časový interval.
d Počet dní bez počátečních nul.
hh Počet hodin, které se pohybuje od "00" do "23".
mm Počet minut, které se pohybuje od "00" do "59".
ss Počet sekund, který se pohybuje od "00" do "59".
. Oddělovač desetinné sekundy. Je ekvivalentní vlastnosti zadané jazykové verze NumberDecimalSeparator bez přepsání uživatele.
fffffff Zlomkové sekundy.

Stejně jako specifikátor formátu "G" je specifikátor formátu "g" lokalizován. Oddělovač desetinné sekundy je založen na aktuální jazykové verzi nebo na vlastnosti zadané jazykové verze NumberDecimalSeparator .

Následující příklad vytvoří instanci dvou TimeSpan objektů, použije je k provádění aritmetických operací a zobrazí výsledek. V každém případě používá složené formátování k zobrazení TimeSpan hodnoty pomocí specifikátoru formátu "G". Kromě toho formátuje TimeSpan hodnotu pomocí konvencí formátování aktuální jazykové verze systému (což je v tomto případě angličtina - USA nebo en-US) a francouzská - Francie (fr-FR) kultura.

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

Viz také