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:00New TimeSpan(0, 0, 30, 0) -> 00:30:00New 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