Standardmäßige TimeSpan-Formatzeichenfolgen
Eine Standard-TimeSpan Formatzeichenfolge verwendet einen einzelnen Formatbezeichner, um die Textdarstellung eines TimeSpan Werts zu definieren, der aus einem Formatierungsvorgang resultiert. Jede Formatzeichenfolge, die mehr als ein Zeichen enthält, einschließlich Leerzeichen, wird als benutzerdefinierte TimeSpan Formatzeichenfolge interpretiert. Weitere Informationen finden Sie unter Benutzerdefinierten TimeSpan-Formatzeichenfolgen.
Die Zeichenfolgendarstellungen von TimeSpan Werten werden durch Aufrufe der Überladungen der TimeSpan.ToString-Methode sowie durch Methoden erzeugt, die zusammengesetzte Formatierungen unterstützen, z. B. String.Format. Weitere Informationen finden Sie unter Formatierungstypen und zusammengesetzten Formatierungen. Im folgenden Beispiel wird die Verwendung von Standardformatzeichenfolgen in Formatierungsvorgängen veranschaulicht.
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
Standard-TimeSpan-Formatzeichenfolgen werden auch von den methoden TimeSpan.ParseExact und TimeSpan.TryParseExact verwendet, um das erforderliche Format von Eingabezeichenfolgen für Analysevorgänge zu definieren. (Die Analyse konvertiert die Zeichenfolgendarstellung eines Werts in diesen Wert.) Im folgenden Beispiel wird die Verwendung von Standardformatzeichenfolgen in Analysevorgängen veranschaulicht.
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
In der folgenden Tabelle sind die Standard-Zeitintervallformatbezeichner aufgeführt.
Formatbezeichner | Name | BESCHREIBUNG | Beispiele |
---|---|---|---|
"c" | Konstantenformat (invarianten) | Dieser Bezeichner ist nicht kulturempfindlich. Es übernimmt die Form [-][d'.']hh':'mm':'ss['.'fffffff] .(Die Zeichenfolgen "t" und "T" erzeugen dieselben Ergebnisse.) Weitere Informationen: Der Konstantenformatbezeichner ("c"). |
TimeSpan.Zero -> 00:00:00 UhrNew TimeSpan(0, 0, 30, 0) -> 00:30:00 UhrNew TimeSpan(3, 17, 25, 30, 500) -> 3.17:25:30.5000000 |
"g" | Allgemeines kurzes Format | Dieser Bezeichner gibt nur das aus, was erforderlich ist. Es ist kulturempfindlich und nimmt die Form [-][d':']h':'mm':'ss[.FFFFFFF] .Weitere Informationen: Der allgemeine Formatbezeichner ("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" | Allgemeines langes Format | Dieser Bezeichner gibt immer Tage und sieben Bruchzahlen aus. Es ist kulturempfindlich und nimmt die Form [-]d':'hh':'mm':'ss.fffffff .Weitere Informationen: Der Allgemeine Long ("G") Formatbezeichner. |
New TimeSpan(18, 30, 0) -> 0:18:30:00.0000000 (en-US)New TimeSpan(18, 30, 0) -> 0:18:30:00.00000000 (fr-FR) |
Der Konstantenformatbezeichner ("c")
Der Formatbezeichner "c" gibt die Zeichenfolgendarstellung eines TimeSpan Werts in der folgenden Form zurück:
[-][d.]hh:mm:ss[.fffffff]
Elemente in eckigen Klammern ([ und ]) sind optional. Der Punkt (.) und der Doppelpunkt (:) sind Literalsymbole. In der folgenden Tabelle werden die verbleibenden Elemente beschrieben.
Element | BESCHREIBUNG |
---|---|
- | Ein optionales negatives Zeichen, das ein negatives Zeitintervall angibt. |
d | Die optionale Anzahl von Tagen ohne führende Nullen. |
hh | Die Anzahl der Stunden, die zwischen "00" und "23" liegen. |
mm | Die Anzahl der Minuten, die zwischen "00" und "59" liegen. |
ss | Die Anzahl der Sekunden, die zwischen "0" und "59" liegt. |
fffffff | Der optionale Bruchteil einer Sekunde. Sein Wert kann zwischen "0000001" (einem Teilstrich oder einem Zehntel einer Sekunde) bis "9999999" (9.999.999.999 Zehntel einer Sekunde oder einer Sekunde weniger als einem Teilstrich) liegen. |
Im Gegensatz zu den Formatbezeichnern "g" und "G" ist der Formatbezeichner "c" nicht kulturempfindlich. Sie erzeugt die Zeichenfolgendarstellung eines TimeSpan Werts, der invariant ist und für Versionen vor .NET Framework 4 üblich ist. "c" ist die Standardformatzeichenfolge TimeSpan; die TimeSpan.ToString()-Methode formatiert einen Zeitintervallwert mithilfe der Zeichenfolge "c".
Hinweis
TimeSpan unterstützt auch die Standardformatzeichenfolgen "t" und "T", die im Verhalten mit der Standardformatzeichenfolge "c" identisch sind.
Im folgenden Beispiel werden zwei TimeSpan Objekte instanziiert, zum Ausführen arithmetischer Vorgänge verwendet und das Ergebnis angezeigt. In jedem Fall wird die zusammengesetzte Formatierung verwendet, um den TimeSpan Wert mithilfe des Formatbezeichners "c" anzuzeigen.
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
Der Allgemeine Kurzformatbezeichner ("g")
Der Formatbezeichner "g" TimeSpan gibt die Zeichenfolgendarstellung eines TimeSpan Werts in einer kompakten Form zurück, indem nur die erforderlichen Elemente eingeschlossen werden. Sie hat die folgende Form:
[-][d:]h:mm:ss[.FFFFFFF]
Elemente in eckigen Klammern ([ und ]) sind optional. Der Doppelpunkt (:) ist ein Literalsymbol. In der folgenden Tabelle werden die verbleibenden Elemente beschrieben.
Element | BESCHREIBUNG |
---|---|
- | Ein optionales negatives Zeichen, das ein negatives Zeitintervall angibt. |
d | Die optionale Anzahl von Tagen ohne führende Nullen. |
h | Die Anzahl der Stunden, die zwischen "0" und "23" liegen, ohne führende Nullen. |
mm | Die Anzahl der Minuten, die zwischen "00" und "59" liegen. |
ss | Die Anzahl der Sekunden, die zwischen "00" und "59" liegen. |
. | Das Bruch sekundentrennzeichen. Sie entspricht der NumberDecimalSeparator-Eigenschaft der angegebenen Kultur ohne Benutzerüberschreibungen. |
FFFFFFF- | Die Bruchsekunden. So wenige Ziffern wie möglich werden angezeigt. |
Wie der "G"-Formatbezeichner wird der "g"-Formatbezeichner lokalisiert. Das Bruch sekundentrennzeichen basiert entweder auf der aktuellen Kultur oder der NumberDecimalSeparator-Eigenschaft einer bestimmten Kultur.
Im folgenden Beispiel werden zwei TimeSpan Objekte instanziiert, zum Ausführen arithmetischer Vorgänge verwendet und das Ergebnis angezeigt. In jedem Fall wird die zusammengesetzte Formatierung verwendet, um den TimeSpan Wert mithilfe des Formatbezeichners "g" anzuzeigen. Darüber hinaus formatiert sie den TimeSpan Wert mithilfe der Formatierungskonventionen der aktuellen Systemkultur (die in diesem Fall Englisch - Usa oder en-US) und französisch - Frankreich (fr-FR) Kultur ist.
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
Der allgemeine Long ("G") Formatbezeichner
Der "G"-TimeSpan Formatbezeichner gibt die Zeichenfolgendarstellung eines TimeSpan Werts in langer Form zurück, der sowohl Tage als auch Bruch sekunden enthält. Die Zeichenfolge, die aus dem Standardformatbezeichner "G" resultiert, weist die folgende Form auf:
[-]d:hh:mm:ss.fffffff
Elemente in eckigen Klammern ([ und ]) sind optional. Der Doppelpunkt (:) ist ein Literalsymbol. In der folgenden Tabelle werden die verbleibenden Elemente beschrieben.
Element | BESCHREIBUNG |
---|---|
- | Ein optionales negatives Zeichen, das ein negatives Zeitintervall angibt. |
d | Die Anzahl der Tage ohne führende Nullen. |
hh | Die Anzahl der Stunden, die zwischen "00" und "23" liegen. |
mm | Die Anzahl der Minuten, die zwischen "00" und "59" liegen. |
ss | Die Anzahl der Sekunden, die zwischen "00" und "59" liegen. |
. | Das Bruch sekundentrennzeichen. Sie entspricht der NumberDecimalSeparator-Eigenschaft der angegebenen Kultur ohne Benutzerüberschreibungen. |
fffffff | Die Bruchsekunden. |
Wie der "G"-Formatbezeichner wird der "g"-Formatbezeichner lokalisiert. Das Bruch sekundentrennzeichen basiert entweder auf der aktuellen Kultur oder der NumberDecimalSeparator-Eigenschaft einer bestimmten Kultur.
Im folgenden Beispiel werden zwei TimeSpan Objekte instanziiert, zum Ausführen arithmetischer Vorgänge verwendet und das Ergebnis angezeigt. In jedem Fall wird die zusammengesetzte Formatierung verwendet, um den TimeSpan Wert mithilfe des Formatbezeichners "G" anzuzeigen. Darüber hinaus formatiert sie den TimeSpan Wert mithilfe der Formatierungskonventionen der aktuellen Systemkultur (die in diesem Fall Englisch - Usa oder en-US) und französisch - Frankreich (fr-FR) Kultur ist.
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