Dela via


Standard TimeSpan-formatsträngar

En standardformatsträng TimeSpan använder en enskild formatspecificerare för att definiera textrepresentationen av ett TimeSpan värde som är resultatet av en formateringsåtgärd. Alla formatsträngar som innehåller mer än ett tecken, inklusive blanksteg, tolkas som en anpassad TimeSpan formatsträng. Mer information finns i Anpassade TimeSpan-formatsträngar.

Strängrepresentationerna av TimeSpan värden skapas av anrop till metodens överlagringar TimeSpan.ToString , samt av metoder som stöder sammansatt formatering, till exempel String.Format. Mer information finns i Formateringstyper och sammansatt formatering. I följande exempel visas användningen av standardformatsträngar i formateringsåtgärder.

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

Standardformatsträngar TimeSpan används också av TimeSpan.ParseExact metoderna och TimeSpan.TryParseExact för att definiera det format som krävs för indatasträngar för parsningsåtgärder. (Parsning konverterar strängrepresentationen av ett värde till det värdet.) I följande exempel visas användningen av standardformatsträngar i parsningsåtgärder.

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

I följande tabell visas standardformatet för tidsintervall.

Formatspecificerare Name beskrivning Exempel
"c" Konstant (invariant) format Den här specificeraren är inte kulturkänslig. Den har formatet [-][d'.']hh':'mm':'ss['.'fffffff].

(Formatsträngarna "t" och "T" ger samma resultat.)

Mer information: Konstantformatsspecificeraren ("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" Allmänt kort format Den här specificeraren matar bara ut det som behövs. Det är kulturkänsligt och har formen [-][d':']h':'mm':'ss[.FFFFFFF].

Mer information: Den allmänna kort ("g") formatspecificeraren.
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" Allmänt långt format Den här specificeraren matar alltid ut dagar och sju bråksiffror. Det är kulturkänsligt och har formen [-]d':'hh':'mm':'ss.fffffff.

Mer information: Formatspecificeraren allmänt lång ("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)

Formatspecificeraren konstant ("c")

Formatspecificeraren "c" returnerar strängrepresentationen av ett TimeSpan värde i följande formulär:

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

Element inom hakparenteser ([ och ]) är valfria. Perioden (.) och kolon (:) är literalsymboler. I följande tabell beskrivs de återstående elementen.

Element Description
- Ett valfritt negativt tecken som anger ett negativt tidsintervall.
d Det valfria antalet dagar utan inledande nollor.
hh Antalet timmar, som sträcker sig från "00" till "23".
mm Antalet minuter, som sträcker sig från "00" till "59".
ss Antalet sekunder, som sträcker sig från "0" till "59".
fffffff Den valfria bråkdelen av en sekund. Dess värde kan variera från "0000001" (en tick eller en tio miljonerdels sekund) till "9999999" (9 999 999 tio miljoner av en sekund, eller en sekund mindre en tick).

Till skillnad från formatspecificerarna "g" och "G" är formatspecificeraren "c" inte kulturkänslig. Den producerar strängrepresentationen av ett TimeSpan värde som är invariant och som är vanligt för versioner före .NET Framework 4. "c" är standardformatsträngen TimeSpanTimeSpan.ToString() . Metoden formaterar ett tidsintervallvärde med hjälp av formatsträngen "c".

Kommentar

TimeSpan stöder också standardformatsträngarna "t" och "T", som är identiska med standardformatsträngen "c".

I följande exempel instansierar två TimeSpan objekt, använder dem för att utföra aritmetiska åtgärder och visar resultatet. I varje fall används sammansatt formatering för att visa TimeSpan värdet med hjälp av formatspecificeraren "c".

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

Formatspecificeraren allmänt kort ("g")

Formatspecificeraren "g" TimeSpan returnerar strängrepresentationen av ett TimeSpan värde i ett kompakt format genom att endast inkludera de element som behövs. Den har följande formulär:

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

Element inom hakparenteser ([ och ]) är valfria. Kolonet (:) är en literalsymbol. I följande tabell beskrivs de återstående elementen.

Element Description
- Ett valfritt negativt tecken som anger ett negativt tidsintervall.
d Det valfria antalet dagar utan inledande nollor.
h Antalet timmar, som sträcker sig från "0" till "23", utan inledande nollor.
mm Antalet minuter, som sträcker sig från "00" till "59".
ss Antalet sekunder, som sträcker sig från "00" till "59".
. Avgränsaren för bråksekunder. Den motsvarar den angivna kulturens egenskap utan åsidosättningar NumberDecimalSeparator av användare.
FFFFFFF Bråksekunderna. Så få siffror som möjligt visas.

Precis som formatspecificeraren "G" lokaliseras "g"-formatspecificeraren. Dess avgränsare för bråksekunder baseras antingen på den aktuella kulturen eller på en angiven kulturs NumberDecimalSeparator egenskap.

I följande exempel instansierar två TimeSpan objekt, använder dem för att utföra aritmetiska åtgärder och visar resultatet. I varje fall använder den sammansatt formatering för att visa TimeSpan värdet med hjälp av formatspecificeraren "g". Dessutom formaterar det TimeSpan värdet med hjälp av formateringskonventionerna i den nuvarande systemkulturen (som i det här fallet är engelska - USA eller en-US) och den franska - Frankrike (fr-FR) kulturen.

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

Formatspecificeraren allmänt lång ("G")

Formatspecificeraren "G" TimeSpan returnerar strängrepresentationen av ett TimeSpan värde i ett långt format som alltid innehåller både dagar och bråk sekunder. Strängen som är resultatet av standardformatsspecificeraren "G" har följande formulär:

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

Element inom hakparenteser ([ och ]) är valfria. Kolonet (:) är en literalsymbol. I följande tabell beskrivs de återstående elementen.

Element Description
- Ett valfritt negativt tecken som anger ett negativt tidsintervall.
d Antalet dagar, utan inledande nollor.
hh Antalet timmar, som sträcker sig från "00" till "23".
mm Antalet minuter, som sträcker sig från "00" till "59".
ss Antalet sekunder, som sträcker sig från "00" till "59".
. Avgränsaren för bråksekunder. Den motsvarar den angivna kulturens egenskap utan åsidosättningar NumberDecimalSeparator av användare.
fffffff Bråksekunderna.

Precis som formatspecificeraren "G" lokaliseras "g"-formatspecificeraren. Dess avgränsare för bråksekunder baseras antingen på den aktuella kulturen eller på en angiven kulturs NumberDecimalSeparator egenskap.

I följande exempel instansierar två TimeSpan objekt, använder dem för att utföra aritmetiska åtgärder och visar resultatet. I varje fall använder den sammansatt formatering för att visa TimeSpan värdet med hjälp av formatspecificeraren "G". Dessutom formaterar det TimeSpan värdet med hjälp av formateringskonventionerna i den nuvarande systemkulturen (som i det här fallet är engelska - USA eller en-US) och den franska - Frankrike (fr-FR) kulturen.

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

Se även