Freigeben über


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".

HinweisHinweis

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

Siehe auch

Konzepte

Formatierung von Typen

Weitere Ressourcen

Benutzerdefinierte TimeSpan-Formatzeichenfolgen

Verarbeiten von Zeichenfolgen