Delen via


Tekenreeksen in standaardtijdspannenotatie

Een standaardnotatietekenreeks TimeSpan maakt gebruik van één opmaakaanduiding om de tekstweergave te definiëren van een TimeSpan waarde die het resultaat is van een opmaakbewerking. Elke opmaaktekenreeks die meer dan één teken bevat, inclusief witruimte, wordt geïnterpreteerd als een tekenreeks met een aangepaste TimeSpan notatie. Zie Tekenreeksen voor aangepaste tijdspannotatie voor meer informatie.

De tekenreeksweergaven van TimeSpan waarden worden geproduceerd door aanroepen naar de overbelasting van de TimeSpan.ToString methode, evenals door methoden die samengestelde opmaak ondersteunen, zoals String.Format. Zie Opmaaktypen en Samengestelde opmaak voor meer informatie. In het volgende voorbeeld ziet u het gebruik van tekenreeksen met standaardindelingen in opmaakbewerkingen.

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

Standaardnotatietekenreeksen TimeSpan worden ook gebruikt door de TimeSpan.ParseExact en TimeSpan.TryParseExact methoden om de vereiste indeling van invoertekenreeksen voor parseringsbewerkingen te definiëren. (Parseren converteert de tekenreeksweergave van een waarde naar die waarde.) In het volgende voorbeeld ziet u het gebruik van tekenreeksen in de standaardindeling in parseringsbewerkingen.

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

De volgende tabel bevat de standaardnotatieaanduidingen voor tijdsinterval.

Opmaakaanduiding Name Beschrijving Voorbeelden
"c" Constante (invariant)-indeling Deze aanduiding is niet cultuurgevoelig. Het heeft de vorm [-][d'.']hh':'mm':'ss['.'fffffff].

(De tekenreeksen 't' en 'T' produceren dezelfde resultaten.)

Meer informatie: De constante ('c') Format Specifier.
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.50000000
"g" Algemene korte notatie Met deze aanduiding wordt alleen uitgevoerd wat nodig is. Het is cultuurgevoelig en neemt de vorm [-][d':']h':'mm':'ss[.FFFFFFF]aan.

Meer informatie: The General Short ("g") Format Specifier.
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" Algemene lange indeling Deze aanduiding levert altijd dagen en zeven fractionele cijfers op. Het is cultuurgevoelig en neemt de vorm [-]d':'hh':'mm':'ss.fffffffaan.

Meer informatie: The General Long ("G") Format Specifier.
New TimeSpan(18, 30, 0) -> 0:18:30:00.00000000 (en-US)

New TimeSpan(18, 30, 0) -> 0:18:30:00.00000000 (fr-FR)

De constante ("c") opmaakaanduiding

De notatieaanduiding 'c' retourneert de tekenreeksweergave van een TimeSpan waarde in de volgende vorm:

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

Elementen in vierkante haken ([ en ]) zijn optioneel. De punt (.) en dubbele punt (:) zijn letterlijke symbolen. In de volgende tabel worden de resterende elementen beschreven.

Element Beschrijving
- Een optioneel negatief teken, wat een negatief tijdsinterval aangeeft.
d Het optionele aantal dagen, zonder voorloopnullen.
hh Het aantal uren, dat varieert van '00' tot '23'.
mm Het aantal minuten, dat varieert van '00' tot '59'.
ss Het aantal seconden, dat varieert van '0' tot '59'.
fffffff Het optionele breukgedeelte van een seconde. De waarde kan variëren van '0000001' (één maatstreepje of tien miljoenste van een seconde) tot '9999999' (9.999.999.999 tien miljoenste van een seconde of één seconde minder dan één maatstreep).

In tegenstelling tot de notatieaanduidingen 'g' en 'G', is de notatieaanduiding 'c' niet cultuurgevoelig. Het produceert de tekenreeksweergave van een TimeSpan waarde die invariant is en die gebruikelijk is voor versies vóór .NET Framework 4. "c" is de standaardnotatietekenreeks TimeSpan ; de TimeSpan.ToString() methode maakt een tijdsintervalwaarde op met behulp van de tekenreeks 'c'-notatie.

Notitie

TimeSpan ondersteunt ook de tekenreeksen 't' en 'T', die identiek zijn aan de standaardnotatietekenreeks 'c'.

In het volgende voorbeeld worden twee TimeSpan objecten geïnstitueert, gebruikt om rekenkundige bewerkingen uit te voeren en het resultaat weer te geven. In elk geval wordt gebruikgemaakt van samengestelde opmaak om de TimeSpan waarde weer te geven met behulp van de notatieaanduiding '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

De algemene korte notatie ('g')

De notatieaanduiding g TimeSpan retourneert de tekenreeksweergave van een TimeSpan waarde in een compacte vorm door alleen de benodigde elementen op te geven. Het heeft het volgende formulier:

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

Elementen in vierkante haken ([ en ]) zijn optioneel. De dubbele punt (:) is een letterlijk symbool. In de volgende tabel worden de resterende elementen beschreven.

Element Beschrijving
- Een optioneel negatief teken, wat een negatief tijdsinterval aangeeft.
d Het optionele aantal dagen, zonder voorloopnullen.
h Het aantal uren, dat varieert van '0' tot '23', zonder voorloopnullen.
mm Het aantal minuten, dat varieert van '00' tot '59'.
ss Het aantal seconden, dat varieert van '00' tot '59'.
. Het scheidingsteken voor fractionele seconden. Het is gelijk aan de eigenschap van NumberDecimalSeparator de opgegeven cultuur zonder onderdrukkingen van de gebruiker.
FFFFFFF De fractionele seconden. Er worden zo weinig mogelijk cijfers weergegeven.

Net als bij de notatieaanduiding G wordt de notatieaanduiding g gelokaliseerd. Het scheidingsteken voor fractionele seconden is gebaseerd op de huidige cultuur of de eigenschap van NumberDecimalSeparator een opgegeven cultuur.

In het volgende voorbeeld worden twee TimeSpan objecten geïnstitueert, gebruikt om rekenkundige bewerkingen uit te voeren en het resultaat weer te geven. In elk geval wordt samengestelde opmaak gebruikt om de TimeSpan waarde weer te geven met behulp van de notatieaanduiding 'g'. Daarnaast wordt de TimeSpan waarde opgemaakt met behulp van de opmaakconventies van de huidige systeemcultuur (in dit geval Engels - Verenigde Staten of en-US) en de Franse - Frankrijk (fr-FR) cultuur.

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

De algemene lange ('G')-opmaakaanduiding

De notatieaanduiding G TimeSpan retourneert de tekenreeksweergave van een TimeSpan waarde in een lange vorm die altijd zowel dagen als fractionele seconden bevat. De tekenreeks die het resultaat is van de standaardnotatieaanduiding G heeft de volgende vorm:

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

Elementen in vierkante haken ([ en ]) zijn optioneel. De dubbele punt (:) is een letterlijk symbool. In de volgende tabel worden de resterende elementen beschreven.

Element Beschrijving
- Een optioneel negatief teken, wat een negatief tijdsinterval aangeeft.
d Het aantal dagen, zonder voorloopnullen.
hh Het aantal uren, dat varieert van '00' tot '23'.
mm Het aantal minuten, dat varieert van '00' tot '59'.
ss Het aantal seconden, dat varieert van '00' tot '59'.
. Het scheidingsteken voor fractionele seconden. Het is gelijk aan de eigenschap van NumberDecimalSeparator de opgegeven cultuur zonder onderdrukkingen van de gebruiker.
fffffff De fractionele seconden.

Net als bij de notatieaanduiding G wordt de notatieaanduiding g gelokaliseerd. Het scheidingsteken voor fractionele seconden is gebaseerd op de huidige cultuur of de eigenschap van NumberDecimalSeparator een opgegeven cultuur.

In het volgende voorbeeld worden twee TimeSpan objecten geïnstitueert, gebruikt om rekenkundige bewerkingen uit te voeren en het resultaat weer te geven. In elk geval wordt samengestelde opmaak gebruikt om de TimeSpan waarde weer te geven met behulp van de notatieaanduiding G. Daarnaast wordt de TimeSpan waarde opgemaakt met behulp van de opmaakconventies van de huidige systeemcultuur (in dit geval Engels - Verenigde Staten of en-US) en de Franse - Frankrijk (fr-FR) cultuur.

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

Zie ook