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á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
Vlastní formátovací řetězce TimeSpan