Standardmäßige TimeSpan-Formatzeichenfolgen

Eine standardmäßige TimeSpan-Formatzeichenfolge verwendet einen einzelnen Formatbezeichner, um die Textdarstellung eines TimeSpan-Werts zu definieren, der sich aus einem Formatierungsvorgang ergibt. Jede Formatzeichenfolge, die mehr als ein Zeichen (einschließlich Leerzeichen) enthält, wird als benutzerdefinierte TimeSpan-Zahlenformatzeichenfolge interpretiert. Weitere Informationen finden Sie unter Benutzerdefinierte TimeSpan-Formatzeichenfolgen.

Die Zeichenfolgendarstellungen von TimeSpan-Werten werden durch Aufrufe der Überladungen der TimeSpan.ToString-Methode und durch Methoden, die die kombinierte Formatierung unterstützen (z. B. String.Format), erzeugt. Weitere Informationen finden Sie unter Formatieren von Typen und Zusammengesetzte Formatierung. Das folgende Beispiel veranschaulicht die Verwendung von Standardformatzeichenfolgen bei Formatierungsvorgängen.

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

Standardmäßige TimeSpan-Formatzeichenfolgen werden auch von der TimeSpan.ParseExact-Methode und TimeSpan.TryParseExact-Methode 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.

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

Die folgende Tabelle enthält die Standardzeitintervall-Formatbezeichner.

Formatbezeichner name Beschreibung Beispiele
"c" Konstantenformat (unveränderlich) Dieser Bezeichner ist nicht kulturabhängig. Er hat das Format [-][d'.']hh':'mm':'ss['.'fffffff].

(Die "t"- und "T"-Formatzeichenfolgen erzeugen die gleichen Ergebnisse.)

Weitere Informationen finden Sie unter: Der Konstantenformatbezeichner "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" Allgemeines kurzes Format Dieser Bezeichner gibt nur aus, was benötigt wird. Es ist kulturabhängig und besitzt das Format [-][d':']h':'mm':'ss[.FFFFFFF].

Weitere Informationen finden Sie unter: Der allgemeine Kurzformatbezeichner "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 Langformat Dieser Bezeichner gibt immer Tage und sieben Dezimalstellen aus. Es ist kulturabhängig und besitzt das Format [-]d':'hh':'mm':'ss.fffffff.

Weitere Informationen finden Sie unter: Der allgemeine Langformatbezeichner "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)

Der Konstantenformatbezeichner "c"

Der Formatbezeichner "c" gibt die Zeichenfolgendarstellung eines TimeSpan-Werts in der folgenden Form an:

[-][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 restlichen 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 Der optionale Bruchteil einer Sekunde. Der Wert kann zwischen „0000001“ (ein Tick oder ein Zehnmillionstel einer Sekunde) und „9999999“ (9.999.999 Zehnmillionstel einer Sekunde oder eine Sekunde minus ein Tick) liegen.

Anders als die Formatbezeichner "G" und "g" ist der Formatbezeichner "c" nicht kulturabhängig. Er erzeugt die Zeichenfolgendarstellung eines TimeSpan-Werts, der unveränderlich und üblich für Versionen vor .NET Framework 4 ist. „c“ ist die standardmäßige TimeSpan-Formatzeichenfolge. Die TimeSpan.ToString()-Methode formatiert einen Zeitintervallwert mit der Formatzeichenfolge „c“.

Hinweis

TimeSpan unterstützt auch die standardmäßigen "t"- und "T"-Formatzeichenfolgen, die im Verhalten identisch mit der Standardformatzeichenfolge "c" sind.

Im folgenden Beispiel werden zwei TimeSpan-Objekte instanziiert, zum Ausführen arithmetischer Vorgänge verwendet, und das Ergebnis wird angezeigt. In jedem Fall wird die kombinierte 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("{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

Der allgemeine Kurzformatbezeichner "g"

Der TimeSpan-Formatbezeichner "g" gibt die Zeichenfolgendarstellung eines TimeSpan-Werts in einem kompakten Format an, indem nur die erforderlichen Elemente eingeschlossen werden. Er hat das folgende Format:

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

Elemente in eckigen Klammern ([ und ]) sind optional. Der Doppelpunkt (:) ist ein Literalsymbol. In der folgenden Tabelle werden die restlichen 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. Dies entspricht der NumberDecimalSeparator-Eigenschaft der angegebenen Kultur ohne Benutzerüberschreibungen.
FFFFFFF Die Sekundenbruchteile. Es werden so wenig Ziffern wie möglich angezeigt.

Der Formatbezeichner "g" ist 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, zum Ausführen arithmetischer Vorgänge verwendet, und das Ergebnis wird angezeigt. In jedem Fall wird die kombinierte Formatierung zum Anzeigen des TimeSpan-Werts mit dem Formatbezeichner "g" verwendet. Darüber hinaus wir der TimeSpan-Wert unter Verwendung der Formatierungskonventionen der aktuellen Systemkultur formatiert (d. h. in diesem Fall Englisch - USA oder en-US) und der Kultur Französisch - Frankreich (fr-FR)).

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

Der allgemeine Langformatbezeichner "G"

Der TimeSpan-Formatbezeichner "G" gibt die Zeichenfolgendarstellung eines TimeSpan-Werts in einem Langformat zurück, das immer Tage und Sekundenbruchteile enthält. Die Zeichenfolge, die sich aus dem Standardformatbezeichner "G" ergibt, hat folgendes Format:

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

Elemente in eckigen Klammern ([ und ]) sind optional. Der Doppelpunkt (:) ist ein Literalsymbol. In der folgenden Tabelle werden die restlichen 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. Dies entspricht der NumberDecimalSeparator-Eigenschaft der angegebenen Kultur ohne Benutzerüberschreibungen.
fffffff Die Sekundenbruchteile.

Der Formatbezeichner "g" ist 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, zum Ausführen arithmetischer Vorgänge verwendet, und das Ergebnis wird angezeigt. In jedem Fall wird die kombinierte Formatierung zum Anzeigen des TimeSpan-Werts mit dem Formatbezeichner "G" verwendet. Darüber hinaus wir der TimeSpan-Wert unter Verwendung der Formatierungskonventionen der aktuellen Systemkultur formatiert (d. h. in diesem Fall Englisch - USA oder en-US) und der Kultur Französisch - Frankreich (fr-FR)).

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

Siehe auch