Freigeben über


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 Uhr

New TimeSpan(0, 0, 30, 0) -> 00:30:00 Uhr

New 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

Siehe auch