Sdílet prostřednictvím


Standardní řetězce formátu TimeSpan

Standardní řetězec formátu TimeSpan 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 vlastní řetězec formátu TimeSpan. Další informace naleznete v tématu vlastní řetězce formátu TimeSpan.

Řetězcové reprezentace TimeSpan hodnot jsou vytvářeny 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: {duration:c}");
   }
}
// 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í formátovací řetězce TimeSpan používají také TimeSpan.ParseExact a TimeSpan.TryParseExact metody k definování požadovaného formátu 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 '{value}' to {interval}");
      }
      catch (FormatException) {
         Console.WriteLine($"{value}: Bad Format");
      }
      catch (OverflowException) {
         Console.WriteLine($"{value}: Out of Range");
      }

      if (TimeSpan.TryParseExact(value, "c", null, out interval))
         Console.WriteLine($"Converted '{value}' to {interval}");
      else
         Console.WriteLine($"Unable to convert {value} to a time interval.");
   }
}
// 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 jazykovou verzi 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 jazykovou verzi 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 reprezentaci hodnoty TimeSpan 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.

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 reprezentaci hodnoty TimeSpan, která je invariantní a která je společná pro verze před rozhraním .NET Framework 4. "c" je výchozí formátovací řetězec TimeSpan; metoda TimeSpan.ToString() 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í hodnoty TimeSpan 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($"{interval1:c} - {interval2:c} = {interval1 - interval2:c}");
      Console.WriteLine($"{interval1:c} + {interval2:c} = {interval1 + interval2:c}");

      interval1 = new TimeSpan(0, 0, 1, 14, 365);
      interval2 = TimeSpan.FromTicks(2143756);
      Console.WriteLine($"{interval1:c} + {interval2:c} = {interval1 + interval2:c}");
   }
}
// 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 reprezentaci hodnoty TimeSpan 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.

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. Odpovídá vlastnosti NumberDecimalSeparator zadané jazykové verze bez přepsání uživatelem.
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 zadané jazykové verzi NumberDecimalSeparator vlastnost.

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 hodnotu TimeSpan pomocí konvencí formátování aktuální jazykové verze systému (což je v tomto případě angličtina - Spojené státy nebo en-US) a francouzština - Francie (fr-FR) jazykové verze.

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($"{interval1:g} - {interval2:g} = {interval1 - interval2:g}");
      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($"{interval1:g} + {interval2:g} = {interval1 + interval2:g}");
   }
}
// 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 reprezentaci hodnoty TimeSpan 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.

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. Odpovídá vlastnosti NumberDecimalSeparator zadané jazykové verze bez přepsání uživatelem.
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 zadané jazykové verzi NumberDecimalSeparator vlastnost.

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í hodnoty TimeSpan pomocí specifikátoru formátu "G". Kromě toho formátuje hodnotu TimeSpan pomocí konvencí formátování aktuální jazykové verze systému (což je v tomto případě angličtina - Spojené státy nebo en-US) a francouzština - Francie (fr-FR) jazykové verze.

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($"{interval1:G} - {interval2:G} = {interval1 - interval2:G}");
      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($"{interval1:G} + {interval2:G} = {interval1 + interval2:G}");
   }
}
// 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é