Delen via


Methode System.TimeSpan.Parse

In dit artikel vindt u aanvullende opmerkingen in de referentiedocumentatie voor deze API.

De invoertekenreeks voor de Parse methoden bevat een tijdsintervalspecificatie in de vorm:

[ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]

Elementen in vierkante haken ([ en ]) zijn optioneel. Eén selectie uit de lijst met alternatieven tussen accolades ({ en }) en gescheiden door verticale balken (|) is vereist. In de volgende tabel wordt elk element beschreven.

Onderdeel Beschrijving
Ws Optionele witruimte.
- Een optioneel minteken, dat een negatieve TimeSpanaangeeft.
d Dagen, variërend van 0 tot 10675199.
. Een cultuurgevoelig symbool dat dagen van uren scheidt. In de invariante notatie wordt een punt (".") gebruikt.
uh Uren, variërend van 0 tot 23.
: Het cultuurgevoelige tijdscheidingsteken. De invariante notatie maakt gebruik van een dubbele punt (:).
Mm Minuten, variërend van 0 tot 59.
ß Optionele seconden, variërend van 0 tot 59.
. Een cultuurgevoelig symbool dat seconden scheidt van breuken van een seconde. In de invariante notatie wordt een punt (".") gebruikt.
ff Optionele fractionele seconden, bestaande uit één tot zeven decimale cijfers.

Als de invoertekenreeks niet alleen een dagwaarde is, moet deze een uren- en minutenonderdeel bevatten; andere onderdelen zijn optioneel. Als ze aanwezig zijn, moeten de waarden van elke tijdcomponent binnen een opgegeven bereik vallen. De waarde van uu, het urengedeelte, moet bijvoorbeeld tussen 0 en 23 zijn. Daarom retourneert het doorgeven van '23:00:00' aan de Parse-methode een tijdsinterval van 23 uur. Aan de andere kant retourneert het doorgeven van '24:00:00' een tijdsinterval van 24 dagen. Omdat '24' buiten het bereik van het urenonderdeel valt, wordt het geïnterpreteerd als het dagenonderdeel.

De onderdelen van de invoertekenreeks moeten gezamenlijk een tijdsinterval opgeven dat groter is dan of gelijk is aan TimeSpan.MinValue en kleiner dan of gelijk aan TimeSpan.MaxValue.

De methode Parse(String) probeert de invoertekenreeks te parseren door gebruik te maken van elk cultuurspecifiek formaat dat bij de huidige cultuur hoort.

Notities voor bellers

Wanneer een tijdsintervalonderdeel in de tekenreeks die moet worden geparseerd meer dan zeven cijfers bevat, kunnen parseringsbewerkingen in .NET Framework 3.5 en eerdere versies zich anders gedragen dan parseringsbewerkingen in .NET Framework 4 en latere versies. In sommige gevallen kunnen parseringsbewerkingen die slagen in .NET Framework 3.5 en eerdere versies mislukken en een OverflowException genereren in .NET Framework 4 en hoger. In andere gevallen kunnen parseringsbewerkingen die een FormatException genereren in .NET Framework 3.5 en eerdere versies mislukken en een OverflowException genereren in .NET Framework 4 en hoger. In het volgende voorbeeld ziet u beide scenario's.

string[] values = { "000000006", "12.12:12:12.12345678" };
foreach (string value in values)
{
   try {
      TimeSpan interval = TimeSpan.Parse(value);
      Console.WriteLine($"{value} --> {interval}");
   }   
   catch (FormatException) {
      Console.WriteLine($"{value}: Bad Format");
   }   
   catch (OverflowException) {
      Console.WriteLine($"{value}: Overflow");
   }
}

// Output from .NET Framework 3.5 and earlier versions:
//       000000006 --> 6.00:00:00
//       12.12:12:12.12345678: Bad Format      
// Output from .NET Framework 4 and later versions or .NET Core:
//       000000006: Overflow
//       12.12:12:12.12345678: Overflow
open System

let values = [| "000000006"; "12.12:12:12.12345678" |]
for value in values do
    try
        let interval = TimeSpan.Parse value
        printfn $"{value} --> {interval}"   
    with
    | :? FormatException ->
        printfn $"{value}: Bad Format"
    | :? OverflowException ->
        printfn $"{value}: Overflow"

// Output from .NET Framework 3.5 and earlier versions:
//       000000006 --> 6.00:00:00
//       12.12:12:12.12345678: Bad Format      
// Output from .NET Framework 4 and later versions or .NET Core:
//       000000006: Overflow
//       12.12:12:12.12345678: Overflow
Dim values() As String = { "000000006", "12.12:12:12.12345678" }
For Each value As String In values
   Try
      Dim interval As TimeSpan = TimeSpan.Parse(value)
      Console.WriteLine("{0} --> {1}", value, interval)
   Catch e As FormatException
      Console.WriteLine("{0}: Bad Format", value)
   Catch e As OverflowException
      Console.WriteLine("{0}: Overflow", value)
   End Try         
Next
' Output from .NET Framework 3.5 and earlier versions:
'       000000006 --> 6.00:00:00
'       12.12:12:12.12345678: Bad Format      
' Output from .NET Framework 4:
'       000000006: Overflow
'       12.12:12:12.12345678: Overflow