TimeSpan-Standardformatzeichenfolgen
Eine TimeSpan-Standardformatzeichenfolge verwendet einen einzelnen Formatbezeichner, um die Textdarstellung eines TimeSpan-Werts zu definieren, die sich aus einem Formatierungsvorgang ergibt. Jede Formatzeichenfolge, die mehr als ein Zeichen (einschließlich Leerzeichen) enthält, wird als benutzerdefinierte TimeSpan-Formatzeichenfolge interpretiert. Weitere Informationen finden Sie unter Benutzerdefinierte TimeSpan-Formatzeichenfolgen.
Die Zeichenfolgendarstellungen von TimeSpan-Werten werden durch Aufrufe von Überladungen der TimeSpan.ToString-Methode sowie durch Methoden erzeugt, die die kombinierte Formatierung unterstützen, z. B. String.Format. Weitere Informationen finden Sie unter Formatierung von Typen und Kombinierte Formatierung. Das folgende Beispiel veranschaulicht die Verwendung von Standardformatzeichenfolgen bei Formatierungsvorgängen.
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
Standardmäßige TimeSpan-Formatzeichenfolgen werden auch von den TimeSpan.ParseExact- und TimeSpan.TryParseExact-Methoden verwendet, um das erforderliche Format von Eingabezeichenfolgen für Analysevorgänge zu definieren. (Beim Analysieren wird die Zeichenfolgendarstellung eines Werts in diesen Wert konvertiert.) Das folgende Beispiel veranschaulicht die Verwendung von Standardformatzeichenfolgen bei Analysevorgängen.
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
In der folgenden Tabelle werden die Standardformatbezeichner für das Zeitintervall aufgeführt.
Formatbezeichner |
Name |
Beschreibung |
Beispiele |
---|---|---|---|
"c" |
Konstantes (unveränderliches) Format |
Dieser Bezeichner ist nicht kulturabhängig. Er besitzt das Format [-][d’.’]hh’:’mm’:’ss[‘.’fffffff]. (Die Formatzeichenfolgen "t-" und "T" führen zu den gleichen Ergebnissen.) Weitere Informationen finden Sie unter Formatbezeichner "c" für konstantes Format. |
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" |
Allgemeines kurzes Format |
Dieser Bezeichner gibt nur aus, was benötigt wird. Dieser Bezeichner ist kulturabhängig und besitzt das Format [-][d’:’]h’:’mm’:’ss[.FFFFFFF]. Weitere Informationen finden Sie unter Formatbezeichner "g" für allgemeines kurzes Format. |
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 Langformat |
Dieser Bezeichner gibt immer Tage und sieben Bruchziffern aus. Dieser Bezeichner ist kulturabhängig und besitzt das Format [-]d’:’hh’:’mm’:’ss.fffffff. Weitere Informationen finden Sie unter Formatbezeichner "G" für allgemeines langes Format. |
New TimeSpan(18, 30, 0) -> 0:18:30:00.0000000 (en-US) New TimeSpan(18, 30, 0) -> 0:18:30:00,0000000 (fr-FR) |
Formatbezeichner "c" für konstantes Format
Der Formatbezeichner "c" gibt die Zeichenfolgendarstellung eines TimeSpan-Werts im folgenden Format zurück:
[-][d.]hh:mm:ss[.fffffff]
Elemente in eckigen Klammern ("["und"]") sind optional. Der Punkt (.) und der Doppelpunkt (:) sind literale Symbole. In der folgenden Tabelle werden die übrigen Elemente beschrieben.
Element |
Beschreibung |
---|---|
- |
Ein optionales negatives Vorzeichen, das ein negatives Zeitintervall angibt. |
d |
Die optionale Anzahl von Tagen, ohne führende Nullen. |
hh |
Die Anzahl von Stunden zwischen "00" und "23". |
mm |
Die Anzahl von Minuten zwischen "00" und "59". |
ss |
Die Anzahl von Sekunden zwischen "0" und "59". |
fffffff |
Die optionale Anzahl von Millisekunden zwischen "0010000" und "9990000". |
Anders als die Formatbezeichner "g" und "G" ist der Formatbezeichner "c" nicht kulturabhängig. Er erzeugt die Zeichenfolgendarstellung eines TimeSpan-Werts, die invariant ist und für alle früheren Versionen des .NET Framework vor .NET Framework, Version 4 gilt. " c" ist die standardmäßige TimeSpan-Formatzeichenfolge. Die TimeSpan.ToString()-Methode formatiert einen Zeitintervallwert mit der Formatzeichenfolge "c".
Hinweis |
---|
TimeSpan unterstützt auch die Standardformatzeichenfolgen "t" und "T", deren Verhalten der Standardformatzeichenfolge "c" entspricht. |
Im folgenden Beispiel werden zwei TimeSpan-Objekte instanziiert und zum Ausführen arithmetischer Operationen verwendet, und anschließend wird das Ergebnis angezeigt. In jedem Fall wird der TimeSpan-Wert mit dem Formatbezeichner "c" unter Verwendung der kombinierten Formatierung angezeigt.
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
Zurück zur Tabelle
Formatbezeichner "g" für allgemeines kurzes Format
Der TimeSpan-Formatbezeichner "g" gibt die Zeichenfolgendarstellung eines TimeSpan-Werts in einem kompakten Format zurück, das nur die erforderlichen Elemente enthält. Die Signatur sieht wie folgt aus:
[-][d:]h:mm:ss[.FFFFFFF]
Elemente in eckigen Klammern ("["und"]") sind optional. Der Doppelpunkt (:) ist ein literales Symbol. In der folgenden Tabelle werden die übrigen Elemente beschrieben.
Element |
Beschreibung |
---|---|
- |
Ein optionales negatives Vorzeichen, das ein negatives Zeitintervall angibt. |
d |
Die optionale Anzahl von Tagen, ohne führende Nullen. |
h |
Die Anzahl von Stunden zwischen "0" und "23", ohne führende Nullen. |
mm |
Die Anzahl von Minuten zwischen "00" und "59". |
ss |
Die Anzahl von Sekunden zwischen "00" und "59". |
. |
Das Trennzeichen für Sekundenbruchteile. Es entspricht der NumberDecimalSeparator-Eigenschaft der angegebenen Kultur ohne benutzerdefinierte Überschreibungen. |
FFFFFFF |
Die Sekundenbruchteile. Es werden so wenig Ziffern wie möglich angezeigt. |
Der Formatbezeichner "g" wird wie der Formatbezeichner "G" lokalisiert. Das Trennzeichen für Sekundenbruchteile basiert auf der aktuellen Kultur oder der NumberDecimalSeparator-Eigenschaft einer angegebenen Kultur.
Im folgenden Beispiel werden zwei TimeSpan-Objekte instanziiert und zum Ausführen arithmetischer Operationen verwendet, und anschließend wird das Ergebnis angezeigt. In jedem Fall wird der TimeSpan-Wert mit dem Formatbezeichner "g" unter Verwendung der kombinierten Formatierung angezeigt. Zudem wird der TimeSpan-Wert anhand der Formatierungskonventionen der aktuellen Systemkultur (in diesem Fall "Englisch - USA" oder "en-US") und der Kultur "Französisch - Frankreich" (fr-FR) formatiert.
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
Zurück zur Tabelle
Formatbezeichner "G" für allgemeines langes Format
Der TimeSpan-Formatbezeichner "G" gibt die Zeichenfolgendarstellung eines TimeSpan-Werts in einem langen Format zurück, das immer sowohl die Tage als auch die Sekundenbruchteile enthält. Die mit dem Standardformatbezeichner "G" erzeugte Zeichenfolge weist das folgende Formular auf:
[-]d:hh:mm:ss.fffffff
Elemente in eckigen Klammern ("["und"]") sind optional. Der Doppelpunkt (:) ist ein literales Symbol. In der folgenden Tabelle werden die übrigen Elemente beschrieben.
Element |
Beschreibung |
---|---|
- |
Ein optionales negatives Vorzeichen, das ein negatives Zeitintervall angibt. |
d |
Die Anzahl von Tagen, ohne führende Nullen. |
hh |
Die Anzahl von Stunden zwischen "00" und "23". |
mm |
Die Anzahl von Minuten zwischen "00" und "59". |
ss |
Die Anzahl von Sekunden zwischen "00" und "59". |
. |
Das Trennzeichen für Sekundenbruchteile. Es entspricht der NumberDecimalSeparator-Eigenschaft der angegebenen Kultur ohne benutzerdefinierte Überschreibungen. |
fffffff |
Die Sekundenbruchteile. |
Der Formatbezeichner "g" wird wie der Formatbezeichner "G" lokalisiert. Das Trennzeichen für Sekundenbruchteile basiert auf der aktuellen Kultur oder der NumberDecimalSeparator-Eigenschaft einer angegebenen Kultur.
Im folgenden Beispiel werden zwei TimeSpan-Objekte instanziiert und zum Ausführen arithmetischer Operationen verwendet, und anschließend wird das Ergebnis angezeigt. In jedem Fall wird der TimeSpan-Wert mit dem Formatbezeichner "G" unter Verwendung der kombinierten Formatierung angezeigt. Zudem wird der TimeSpan-Wert anhand der Formatierungskonventionen der aktuellen Systemkultur (in diesem Fall "Englisch - USA" oder "en-US") und der Kultur "Französisch - Frankreich" (fr-FR) formatiert.
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
Zurück zur Tabelle