Taal

TimeSpan.Parse Methode

Definitie

Converteert de tekenreeksweergave van een tijdsinterval naar het TimeSpan equivalent ervan.

Overloads

Name Description
Parse(ReadOnlySpan<Char>, IFormatProvider)

Converteert de periodeweergave van een tijdsinterval naar het TimeSpan equivalent ervan met behulp van de opgegeven cultuurspecifieke notatiegegevens.

Parse(String, IFormatProvider)

Converteert de tekenreeksweergave van een tijdsinterval naar het TimeSpan equivalent ervan met behulp van de opgegeven cultuurspecifieke notatiegegevens.

Parse(String)

Converteert de tekenreeksweergave van een tijdsinterval naar het TimeSpan equivalent ervan.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Bron:
TimeSpan.cs
Bron:
TimeSpan.cs
Bron:
TimeSpan.cs
Bron:
TimeSpan.cs
Bron:
TimeSpan.cs

Converteert de periodeweergave van een tijdsinterval naar het TimeSpan equivalent ervan met behulp van de opgegeven cultuurspecifieke notatiegegevens.

public static TimeSpan Parse(ReadOnlySpan<char> input, IFormatProvider? formatProvider = default);
public static TimeSpan Parse(ReadOnlySpan<char> input, IFormatProvider formatProvider = default);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> TimeSpan
Public Shared Function Parse (input As ReadOnlySpan(Of Char), Optional formatProvider As IFormatProvider = Nothing) As TimeSpan

Parameters

input
ReadOnlySpan<Char>

Een periode met de tekens die het tijdsinterval vertegenwoordigen dat moet worden geconverteerd.

formatProvider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie levert.

Retouren

Een tijdsinterval dat overeenkomt met input, zoals opgegeven door formatProvider.

Implementeringen

Van toepassing op

Parse(String, IFormatProvider)

Bron:
TimeSpan.cs
Bron:
TimeSpan.cs
Bron:
TimeSpan.cs
Bron:
TimeSpan.cs
Bron:
TimeSpan.cs

Converteert de tekenreeksweergave van een tijdsinterval naar het TimeSpan equivalent ervan met behulp van de opgegeven cultuurspecifieke notatiegegevens.

public:
 static TimeSpan Parse(System::String ^ input, IFormatProvider ^ formatProvider);
public:
 static TimeSpan Parse(System::String ^ input, IFormatProvider ^ formatProvider) = IParsable<TimeSpan>::Parse;
public static TimeSpan Parse(string input, IFormatProvider formatProvider);
public static TimeSpan Parse(string input, IFormatProvider? formatProvider);
static member Parse : string * IFormatProvider -> TimeSpan
Public Shared Function Parse (input As String, formatProvider As IFormatProvider) As TimeSpan

Parameters

input
String

Een tekenreeks die het tijdsinterval aangeeft dat moet worden geconverteerd.

formatProvider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie levert.

Retouren

Een tijdsinterval dat overeenkomt met input, zoals opgegeven door formatProvider.

Implementeringen

Uitzonderingen

input is null.

input heeft een ongeldige indeling.

input vertegenwoordigt een getal dat kleiner is dan TimeSpan.MinValue of groter is dan TimeSpan.MaxValue.

– of –

Ten minste één van de onderdelen dagen, uren, minuten of seconden valt input buiten het geldige bereik.

Voorbeelden

In het volgende voorbeeld wordt een matrix met CultureInfo objecten gedefinieerd en wordt elk object gebruikt in aanroepen naar de Parse(String, IFormatProvider) methode om de elementen in een tekenreeksmatrix te parseren. In het voorbeeld ziet u hoe de conventies van een specifieke cultuur van invloed zijn op de opmaakbewerking.

using System;
using System.Globalization;
using System.Text.RegularExpressions;

public class Example2
{
   public static void Main()
   {
      string[] values = { "6", "6:12", "6:12:14", "6:12:14:45",
                          "6.12:14:45", "6:12:14:45.3448",
                          "6:12:14:45,3448", "6:34:14:45" };
      CultureInfo[] cultures = { new CultureInfo("en-US"),
                                 new CultureInfo("ru-RU"),
                                 CultureInfo.InvariantCulture };

      string header = String.Format("{0,-17}", "String");
      foreach (CultureInfo culture in cultures)
         header += culture.Equals(CultureInfo.InvariantCulture) ?
                      String.Format("{0,20}", "Invariant") :
                      String.Format("{0,20}", culture.Name);
      Console.WriteLine(header);
      Console.WriteLine();

      foreach (string value in values)
      {
         Console.Write("{0,-17}", value);
         foreach (CultureInfo culture in cultures)
         {
            try {
               TimeSpan ts = TimeSpan.Parse(value, culture);
               Console.Write("{0,20}", ts.ToString("c"));
            }
            catch (FormatException) {
               Console.Write("{0,20}", "Bad Format");
            }
            catch (OverflowException) {
               Console.Write("{0,20}", "Overflow");
            }
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//    String                          en-US               ru-RU           Invariant
//
//    6                          6.00:00:00          6.00:00:00          6.00:00:00
//    6:12                         06:12:00            06:12:00            06:12:00
//    6:12:14                      06:12:14            06:12:14            06:12:14
//    6:12:14:45                 6.12:14:45          6.12:14:45          6.12:14:45
//    6.12:14:45                 6.12:14:45          6.12:14:45          6.12:14:45
//    6:12:14:45.3448    6.12:14:45.3448000          Bad Format  6.12:14:45.3448000
//    6:12:14:45,3448            Bad Format  6.12:14:45.3448000          Bad Format
//    6:34:14:45                   Overflow            Overflow            Overflow
open System
open System.Globalization
open System.Text.RegularExpressions

let values = 
    [| "6"; "6:12"; "6:12:14"; "6:12:14:45" 
       "6.12:14:45"; "6:12:14:45.3448"
       "6:12:14:45,3448"; "6:34:14:45" |]
let cultures = 
    [| CultureInfo "en-US" 
       CultureInfo "ru-RU"
       CultureInfo.InvariantCulture |]

let mutable header = $"""{"String",-17}"""
for culture in cultures do
    header <- header +
        if culture.Equals CultureInfo.InvariantCulture then 
            $"""{"Invariant",20}"""
        else
            $"{culture.Name,20}"
printfn $"{header}\m"

for value in values do
    printf $"{value,-17}"
    for culture in cultures do
        try
            let ts = TimeSpan.Parse(value, culture)
            printf $"{ts,20:c}"
        with
        | :? FormatException ->
            printf $"""{"Bad Format",20}"""
        | :? OverflowException ->
            printf $"""{"Overflow",20}"""
    printfn ""                      
// The example displays the following output:
//    String                          en-US               ru-RU           Invariant
//    
//    6                          6.00:00:00          6.00:00:00          6.00:00:00
//    6:12                         06:12:00            06:12:00            06:12:00
//    6:12:14                      06:12:14            06:12:14            06:12:14
//    6:12:14:45                 6.12:14:45          6.12:14:45          6.12:14:45
//    6.12:14:45                 6.12:14:45          6.12:14:45          6.12:14:45
//    6:12:14:45.3448    6.12:14:45.3448000          Bad Format  6.12:14:45.3448000
//    6:12:14:45,3448            Bad Format  6.12:14:45.3448000          Bad Format
//    6:34:14:45                   Overflow            Overflow            Overflow
Dim values() As String = {"6", "6:12", "6:12:14", "6:12:14:45",
                         "6.12:14:45", "6:12:14:45.3448",
                         "6:12:14:45,3448", "6:34:14:45"}
Dim cultures() As CultureInfo = {New CultureInfo("en-US"),
                                New CultureInfo("ru-RU"),
                                CultureInfo.InvariantCulture}

Dim header As String = String.Format("{0,-17}", "String")
For Each culture As CultureInfo In cultures
    header += If(culture.Equals(CultureInfo.InvariantCulture),
              String.Format("{0,20}", "Invariant"),
              String.Format("{0,20}", culture.Name))
Next
Console.WriteLine(header)
Console.WriteLine()

For Each value As String In values
    Console.Write("{0,-17}", value)
    For Each culture As CultureInfo In cultures
        Try
            Dim ts As TimeSpan = TimeSpan.Parse(value, culture)
            Console.Write("{0,20}", ts.ToString("c"))
        Catch e As FormatException
            Console.Write("{0,20}", "Bad Format")
        Catch e As OverflowException
            Console.Write("{0,20}", "Overflow")
        End Try
    Next
    Console.WriteLine()
Next

' The example displays the following output:
'    String                          en-US               ru-RU           Invariant
'    
'    6                          6.00:00:00          6.00:00:00          6.00:00:00
'    6:12                         06:12:00            06:12:00            06:12:00
'    6:12:14                      06:12:14            06:12:14            06:12:14
'    6:12:14:45                 6.12:14:45          6.12:14:45          6.12:14:45
'    6.12:14:45                 6.12:14:45          6.12:14:45          6.12:14:45
'    6:12:14:45.3448    6.12:14:45.3448000          Bad Format  6.12:14:45.3448000
'    6:12:14:45,3448            Bad Format  6.12:14:45.3448000          Bad Format
'    6:34:14:45                   Overflow            Overflow            Overflow

Opmerkingen

Deze methode probeert te parseren input met behulp van elk van de cultuurspecifieke notaties voor de cultuur die is opgegeven door formatProvider.

De formatProvider parameter is een IFormatProvider implementatie die cultuurspecifieke informatie biedt over de indeling van de geretourneerde tekenreeks. De formatProvider parameter kan een van de volgende zijn:

Als formatProvidernull is, wordt het aan de huidige cultuur gekoppelde DateTimeFormatInfo object gebruikt.

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.

Element Description
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.
ss 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.

Van toepassing op

Parse(String)

Bron:
TimeSpan.cs
Bron:
TimeSpan.cs
Bron:
TimeSpan.cs
Bron:
TimeSpan.cs
Bron:
TimeSpan.cs

Converteert de tekenreeksweergave van een tijdsinterval naar het TimeSpan equivalent ervan.

public:
 static TimeSpan Parse(System::String ^ s);
public static TimeSpan Parse(string s);
static member Parse : string -> TimeSpan
Public Shared Function Parse (s As String) As TimeSpan

Parameters

s
String

Een tekenreeks die het tijdsinterval aangeeft dat moet worden geconverteerd.

Retouren

Een tijdsinterval dat overeenkomt met s.

Uitzonderingen

s heeft een ongeldige indeling.

s vertegenwoordigt een getal dat kleiner is dan TimeSpan.MinValue of groter is dan TimeSpan.MaxValue.

– of –

Ten minste één van de onderdelen dagen, uren, minuten of seconden valt buiten het geldige bereik.

Voorbeelden

In het volgende voorbeeld wordt de Parse methode gebruikt om elk element in een tekenreeksmatrix te converteren naar een TimeSpan waarde. Het verandert de huidige systeemcultuur in Kroatisch - Kroatië ("hr-HR") en Engels - Verenigde Staten ("en-US") om te illustreren hoe de huidige systeemcultuur van invloed is op de parseringsbewerking.

using System;
using System.Globalization;
using System.Threading;

public class Example1
{
   public static void Main()
   {
      string[] values = { "6", "6:12", "6:12:14", "6:12:14:45",
                          "6.12:14:45", "6:12:14:45.3448",
                          "6:12:14:45,3448", "6:34:14:45" };
      string[] cultureNames = { "hr-HR", "en-US"};

      // Change the current culture.
      foreach (string cultureName in cultureNames)
      {
         Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
         Console.WriteLine("Current Culture: {0}",
                           Thread.CurrentThread.CurrentCulture.Name);
         foreach (string value in values)
         {
            try {
               TimeSpan ts = TimeSpan.Parse(value);
               Console.WriteLine("{0} --> {1}", value, ts.ToString("c"));
            }
            catch (FormatException) {
               Console.WriteLine("{0}: Bad Format", value);
            }
            catch (OverflowException) {
               Console.WriteLine("{0}: Overflow", value);
            }
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//    Current Culture: hr-HR
//    6 --> 6.00:00:00
//    6:12 --> 06:12:00
//    6:12:14 --> 06:12:14
//    6:12:14:45 --> 6.12:14:45
//    6.12:14:45 --> 6.12:14:45
//    6:12:14:45.3448: Bad Format
//    6:12:14:45,3448 --> 6.12:14:45.3448000
//    6:34:14:45: Overflow
//
//    Current Culture: en-US
//    6 --> 6.00:00:00
//    6:12 --> 06:12:00
//    6:12:14 --> 06:12:14
//    6:12:14:45 --> 6.12:14:45
//    6.12:14:45 --> 6.12:14:45
//    6:12:14:45.3448 --> 6.12:14:45.3448000
//    6:12:14:45,3448: Bad Format
//    6:34:14:45: Overflow
open System
open System.Globalization
open System.Threading

let values = 
    [| "6"; "6:12"; "6:12:14"; "6:12:14:45" 
       "6.12:14:45"; "6:12:14:45.3448" 
       "6:12:14:45,3448"; "6:34:14:45" |]
let cultureNames = [| "hr-HR"; "en-US" |]

// Change the current culture.
for cultureName in cultureNames do
    Thread.CurrentThread.CurrentCulture <- CultureInfo cultureName
    printfn $"Current Culture: {Thread.CurrentThread.CurrentCulture.Name}" 
    for value in values do
        try 
            let ts = TimeSpan.Parse value
            printfn $"{value} --> {ts:c}"
        with 
        | :? FormatException ->
            printfn $"{value}: Bad Format"
        | :? OverflowException ->
            printfn $"{value}: Overflow"
    printfn ""                                
// The example displays the following output:
//    Current Culture: hr-HR
//    6 --> 6.00:00:00
//    6:12 --> 06:12:00
//    6:12:14 --> 06:12:14
//    6:12:14:45 --> 6.12:14:45
//    6.12:14:45 --> 6.12:14:45
//    6:12:14:45.3448: Bad Format
//    6:12:14:45,3448 --> 6.12:14:45.3448000
//    6:34:14:45: Overflow
//    
//    Current Culture: en-US
//    6 --> 6.00:00:00
//    6:12 --> 06:12:00
//    6:12:14 --> 06:12:14
//    6:12:14:45 --> 6.12:14:45
//    6.12:14:45 --> 6.12:14:45
//    6:12:14:45.3448 --> 6.12:14:45.3448000
//    6:12:14:45,3448: Bad Format
//    6:34:14:45: Overflow
Dim values() As String = {"6", "6:12", "6:12:14", "6:12:14:45",
                         "6.12:14:45", "6:12:14:45.3448",
                         "6:12:14:45,3448", "6:34:14:45"}
Dim cultureNames() As String = {"hr-HR", "en-US"}

' Change the current culture.
For Each cultureName As String In cultureNames
    Thread.CurrentThread.CurrentCulture = New CultureInfo(cultureName)
    Console.WriteLine("Current Culture: {0}",
                   Thread.CurrentThread.CurrentCulture.Name)
    For Each value As String In values
        Try
            Dim ts As TimeSpan = TimeSpan.Parse(value)
            Console.WriteLine("{0} --> {1}", value, ts.ToString("c"))
        Catch e As FormatException
            Console.WriteLine("{0}: Bad Format", value)
        Catch e As OverflowException
            Console.WriteLine("{0}: Overflow", value)
        End Try
    Next
    Console.WriteLine()
Next

' The example displays the following output:
'       Current Culture: hr-HR
'       6 --> 6.00:00:00
'       6:12 --> 06:12:00
'       6:12:14 --> 06:12:14
'       6:12:14:45 --> 6.12:14:45
'       6.12:14:45 --> 6.12:14:45
'       6:12:14:45.3448: Bad Format
'       6:12:14:45,3448 --> 6.12:14:45.3448000
'       6:34:14:45: Overflow
'
'       Current Culture: en-US
'       6 --> 6.00:00:00
'       6:12 --> 06:12:00
'       6:12:14 --> 06:12:14
'       6:12:14:45 --> 6.12:14:45
'       6.12:14:45 --> 6.12:14:45
'       6:12:14:45.3448 --> 6.12:14:45.3448000
'       6:12:14:45,3448: Bad Format
'       6:34:14:45: Overflow

Opmerkingen

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.

Element Description
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.
ss 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.

Van toepassing op