Sdílet prostřednictvím


Standardní formátovací řetězce TimeSpan

Standardní formátovací řetězec třídy TimeSpan používá jeden specifikátor formátu pro definování textové reprezentace hodnoty TimeSpan, 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ů je interpretován jako vlastní formátovací řetězec TimeSpan. Další informace naleznete v tématu Vlastní formátovací řetězce TimeSpan.

Řetězcové reprezentace hodnot TimeSpan jsou vytvářeny voláním přetížení metody TimeSpan.ToString stejně jako metodami, které podporují složené formátování, jako 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ího formátovacího řetězce v operacích formátování.

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

Standardní formátovací řetězce TimeSpan jsou také používány metodami TimeSpan.ParseExact a TimeSpan.TryParseExact pro definování požadovaného formátu vstupních řetězců pro operace analýzy. (Analýza převede řetězcovou reprezentaci hodnoty na tuto hodnotu.) Následující příklad ukazuje použití standardního formátovacího řetězce v operacích analýzy.

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

V následující tabulce jsou uvedeny specifikátory formátu pro časové intervaly.

Specifikátor formátu

Název

Popis

Příklady

"c"

Konstantní (invariantní) formát

Tento specifikátor nezohledňuje jazykové verze. Používá formát [-][d’.’]hh’:’mm’:’ss[‘.’fffffff]

(Formátovací řetězce t a T poskytují stejné výsledky.)

Další informace: Specifikátor formátu konstanta ("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 poskytuje jako výstup pouze to, co je potřebné. Zohledňuje jazykové verze a používá formát [-][d’:’]h’:’mm’:’ss[.FFFFFFF]

Další informace: Obecný krátký specifikátor formátu ("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 poskytuje jako výstup dny a sedm zlomkových číslic. Zohledňuje jazykové verze a používá formát [-]d’:’hh’:’mm’:’ss.fffffff

Další informace: Obecný dlouhý specifikátor formátu ("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 konstanta ("c").

Specifikátor formátu c vrací řetězcové vyjádření hodnoty TimeSpan v následujícím formátu:

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

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

Prvek

Popis

-

Volitelné záporné znaménko, označující 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é od "00" "59".

ss

Počet sekund, které od "0" "59".

fffffff

Volitelný počet milisekund, který se pohybuje od 0010000 do 9990000.

Na rozdíl od specifikátorů formátu g a G, specifikátor formátu c nezohledňuje jazykové verze. Vytváří řetězcovou reprezentaci hodnoty TimeSpan, která je invariantní, a která je společná pro všechny předchozí verze rozhraní .NET Framework před .NET Framework verze 4. " "c" je výchozí formátovací řetězec TimeSpan. Metoda TimeSpan.ToString() formátuje hodnotu časového intervalu pomocí formátovacího řetězce c.

PoznámkaPoznámka

TimeSpan také podporuje standardní formátovací řetězce t a T, které se chovají stejně jako standardní formátovací řetězec c.

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

Zpět na tabulku

Obecný krátký specifikátor 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í formát:

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

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

Prvek

Popis

-

Volitelné záporné znaménko, označující záporný časový interval.

d

Volitelný počet dnů bez počátečních nul.

h

Počet hodin, které od "0" "23", se bez úvodní nuly.

MM

Počet minut, který se pohybuje od 00 do 59.

ss

Počet sekund, který se pohybuje od 00 do 59.

.

Oddělovač zlomků vteřin. Je ekvivalentní zadané vlastnosti jazykové verze NumberDecimalSeparator bez uživatelského přepisování.

FFFFFFF

Zlomky sekund. Je zobrazeno nejméně číslic, jak to je možné.

Podobně jako specifikátor formátu G je lokalizován specifikátor formátu g. Jeho oddělovač zlomků sekund je založen buď na aktuální jazykové verzi nebo na zadané vlastnosti jazykové verze NumberDecimalSeparator.

Následující příklad vytvoří dvě instance objektů TimeSpan, použije je k provedení aritmetických operací a zobrazí výsledek. V každém případě používá složené formátování pro zobrazení hodnoty TimeSpan s použitím specifikátoru formátu g. Kromě toho formátuje hodnotu TimeSpan pomocí formátovacích úmluv aktuální systémové jazykové verze (která je v tomto případě English - United States nebo en-US) a jazykové verze French - France (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

Zpět na tabulku

Obecný dlouhý specifikátor formátu ("G").

Specifikátor formátu G TimeSpan vrací řetězcové vyjádření hodnot TimeSpan v dlouhém formátu, který vždy obsahuje dny i zlomky sekund. Řetězec, který je výsledkem standardního specifikátoru formátu G má následující formát:

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

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

Prvek

Popis

-

Volitelné záporné znaménko, označující 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é od "00" "59".

ss

Počet sekund, které od "00" "59".

.

Oddělovač zlomků vteřin. Je ekvivalentní zadané vlastnosti jazykové verze NumberDecimalSeparator bez uživatelského přepisování.

fffffff

Zlomky sekund.

Podobně jako specifikátor formátu G je lokalizován specifikátor formátu g. Jeho oddělovač zlomků sekund je založen buď na aktuální jazykové verzi nebo na zadané vlastnosti jazykové verze NumberDecimalSeparator.

Následující příklad vytvoří dvě instance objektů TimeSpan, použije je k provedení aritmetických operací a zobrazí výsledek. V každém případě používá složené formátování pro zobrazení hodnoty TimeSpan s použitím specifikátoru formátu G. Kromě toho formátuje hodnotu TimeSpan pomocí formátovacích úmluv aktuální systémové jazykové verze (která je v tomto případě English - United States nebo en-US) a jazyková verze French - France (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

Zpět na tabulku

Viz také

Koncepty

Typy formátování

Vlastní formátovací řetězce TimeSpan

Další zdroje

Analýza řetězců