TimeSpan.ParseExact Methode

Definitie

Converteert de tekenreeksweergave van een tijdsinterval naar het TimeSpan equivalent ervan. De indeling van de tekenreeksweergave moet exact overeenkomen met een opgegeven indeling.

Overloads

Name Description
ParseExact(String, String, IFormatProvider, TimeSpanStyles)

Converteert de tekenreeksweergave van een tijdsinterval naar TimeSpan het equivalent ervan met behulp van de opgegeven indeling, cultuurspecifieke notatiegegevens en stijlen. De indeling van de tekenreeksweergave moet exact overeenkomen met de opgegeven indeling.

ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, TimeSpanStyles)

Converteert de tekenreeksweergave van een tijdsinterval naar het TimeSpan equivalent ervan met behulp van de opgegeven notaties, cultuurspecifieke notatiegegevens en stijlen. De indeling van de tekenreeksweergave moet exact overeenkomen met een van de opgegeven notaties.

ParseExact(String, String[], IFormatProvider, TimeSpanStyles)

Converteert de tekenreeksweergave van een tijdsinterval naar het TimeSpan equivalent ervan met behulp van de opgegeven notaties, cultuurspecifieke notatiegegevens en stijlen. De indeling van de tekenreeksweergave moet exact overeenkomen met een van de opgegeven notaties.

ParseExact(String, String[], IFormatProvider)

Converteert de tekenreeksweergave van een tijdsinterval naar TimeSpan het equivalent ervan met behulp van de opgegeven matrix van notatietekenreeksen en cultuurspecifieke notatiegegevens. De indeling van de tekenreeksweergave moet exact overeenkomen met een van de opgegeven notaties.

ParseExact(String, String, IFormatProvider)

Converteert de tekenreeksweergave van een tijdsinterval naar het TimeSpan equivalent ervan met behulp van de opgegeven notatie- en cultuurspecifieke notatiegegevens. De indeling van de tekenreeksweergave moet exact overeenkomen met de opgegeven indeling.

ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, TimeSpanStyles)

Converteert de tekenperiode van een tijdsinterval naar het TimeSpan equivalent ervan met behulp van de opgegeven notatie- en cultuurspecifieke notatiegegevens. De indeling van de tekenreeksweergave moet exact overeenkomen met de opgegeven indeling.

ParseExact(String, String, IFormatProvider, TimeSpanStyles)

Converteert de tekenreeksweergave van een tijdsinterval naar TimeSpan het equivalent ervan met behulp van de opgegeven indeling, cultuurspecifieke notatiegegevens en stijlen. De indeling van de tekenreeksweergave moet exact overeenkomen met de opgegeven indeling.

public:
 static TimeSpan ParseExact(System::String ^ input, System::String ^ format, IFormatProvider ^ formatProvider, System::Globalization::TimeSpanStyles styles);
public static TimeSpan ParseExact(string input, string format, IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles);
static member ParseExact : string * string * IFormatProvider * System.Globalization.TimeSpanStyles -> TimeSpan
Public Shared Function ParseExact (input As String, format As String, formatProvider As IFormatProvider, styles As TimeSpanStyles) As TimeSpan

Parameters

input
String

Een tekenreeks die het tijdsinterval aangeeft dat moet worden geconverteerd.

format
String

Een standaard- of aangepaste notatietekenreeks die de vereiste indeling definieert input.

formatProvider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie biedt.

styles
TimeSpanStyles

Een bitsgewijze combinatie van opsommingswaarden waarmee de stijlelementen worden gedefinieerd die mogelijk aanwezig zijn in input.

Retouren

Een tijdsinterval dat overeenkomt met input, zoals opgegeven door format, formatProvideren styles.

Uitzonderingen

styles is een ongeldige TimeSpanStyles waarde.

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 de ParseExact(String, String, IFormatProvider) methode gebruikt om verschillende tekenreeksweergaven van tijdsintervallen te parseren met behulp van verschillende notatietekenreeksen en culturen. Ook wordt de TimeSpanStyles.AssumeNegative waarde gebruikt om elke tekenreeks te interpreteren als een negatief tijdsinterval. De uitvoer uit het voorbeeld illustreert dat de TimeSpanStyles.AssumeNegative stijl alleen van invloed is op de retourwaarde wanneer deze wordt gebruikt met tekenreeksen met aangepaste notatie.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string intervalString, format;
      TimeSpan interval;
      CultureInfo culture = null;
      
      // Parse hour:minute value with custom format specifier.
      intervalString = "17:14";
      format = "h\\:mm";
      culture = CultureInfo.CurrentCulture;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        culture, TimeSpanStyles.AssumeNegative);
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }   
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      }      
      
      // Parse hour:minute:second value with "g" specifier.
      intervalString = "17:14:48";
      format = "g";
      culture = CultureInfo.InvariantCulture;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        culture, TimeSpanStyles.AssumeNegative);
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }   
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 
      
      // Parse hours:minute.second value with custom format specifier.     
      intervalString = "17:14:48.153";
      format = @"h\:mm\:ss\.fff";
      culture = null;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        culture, TimeSpanStyles.AssumeNegative);
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }   
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 

      // Parse days:hours:minute.second value with "G" specifier 
      // and current (en-US) culture.     
      intervalString = "3:17:14:48.153";
      format = "G";
      culture = CultureInfo.CurrentCulture;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        culture, TimeSpanStyles.AssumeNegative);
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 
            
      // Parse days:hours:minute.second value with a custom format specifier.     
      intervalString = "3:17:14:48.153";
      format = @"d\:hh\:mm\:ss\.fff";
      culture = null;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        culture, TimeSpanStyles.AssumeNegative);
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }   
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 
      
      // Parse days:hours:minute.second value with "G" specifier 
      // and fr-FR culture.     
      intervalString = "3:17:14:48,153";
      format = "G";
      culture = new CultureInfo("fr-FR");
      try {
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        culture, TimeSpanStyles.AssumeNegative);
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }   
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 

      // Parse a single number using the "c" standard format string. 
      intervalString = "12";
      format = "c";
      try {
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        null, TimeSpanStyles.AssumeNegative);
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }   
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 
      
      // Parse a single number using the "%h" custom format string. 
      format = "%h";
      try {
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        null, TimeSpanStyles.AssumeNegative);
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }   
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 
      
      // Parse a single number using the "%s" custom format string. 
      format = "%s";
      try {
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        null, TimeSpanStyles.AssumeNegative);
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }   
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 
   }
}
// The example displays the following output:
//    '17:14' (h\:mm) --> -17:14:00
//    '17:14:48' (g) --> 17:14:48
//    '17:14:48.153' (h\:mm\:ss\.fff) --> -17:14:48.1530000
//    '3:17:14:48.153' (G) --> 3.17:14:48.1530000
//    '3:17:14:48.153' (d\:hh\:mm\:ss\.fff) --> -3.17:14:48.1530000
//    '3:17:14:48,153' (G) --> 3.17:14:48.1530000
//    '12' (c) --> 12.00:00:00
//    '12' (%h) --> -12:00:00
//    '12' (%s) --> -00:00:12
open System
open System.Globalization

do
    // Parse hour:minute value with custom format specifier.
    let intervalString = "17:14"
    let format = "h\\:mm"
    let culture = CultureInfo.CurrentCulture
    try
        let interval = TimeSpan.ParseExact(intervalString, format, culture, TimeSpanStyles.AssumeNegative)
        printfn $"'{intervalString}' ({format}) --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
    
    // Parse hour:minute:second value with "g" specifier.
    let intervalString = "17:14:48"
    let format = "g"
    let culture = CultureInfo.InvariantCulture
    try
        let interval = TimeSpan.ParseExact(intervalString, format, culture, TimeSpanStyles.AssumeNegative)
        printfn $"'{intervalString}' ({format}) --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
    
    // Parse hours:minute.second value with custom format specifier.     
    let intervalString = "17:14:48.153"
    let format = @"h\:mm\:ss\.fff"
    let culture = null
    try
        let interval = TimeSpan.ParseExact(intervalString, format, culture, TimeSpanStyles.AssumeNegative)
        printfn $"'{intervalString}' ({format}) --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"

    // Parse days:hours:minute.second value with "G" specifier 
    // and current (en-US) culture.     
    let intervalString = "3:17:14:48.153"
    let format = "G"
    let culture = CultureInfo.CurrentCulture
    try
        let interval = TimeSpan.ParseExact(intervalString, format, culture, TimeSpanStyles.AssumeNegative)
        printfn $"'{intervalString}' ({format}) --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
        
    // Parse days:hours:minute.second value with a custom format specifier.     
    let intervalString = "3:17:14:48.153"
    let format = @"d\:hh\:mm\:ss\.fff"
    let culture = null
    try
        let interval = TimeSpan.ParseExact(intervalString, format, culture, TimeSpanStyles.AssumeNegative)
        printfn $"'{intervalString}' ({format}) --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
    
    // Parse days:hours:minute.second value with "G" specifier 
    // and fr-FR culture.     
    let intervalString = "3:17:14:48,153"
    let format = "G"
    let culture = new CultureInfo("fr-FR")
    try
        let interval = TimeSpan.ParseExact(intervalString, format, culture, TimeSpanStyles.AssumeNegative)
        printfn $"'{intervalString}' ({format}) --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"

    // Parse a single number using the "c" standard format string. 
    let intervalString = "12"
    let format = "c"
    try
        let interval = TimeSpan.ParseExact(intervalString, format, null, TimeSpanStyles.AssumeNegative)
        printfn $"'{intervalString}' ({format}) --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
    
    // Parse a single number using the "%h" custom format string. 
    let format = "%h"
    try
        let interval = TimeSpan.ParseExact(intervalString, format, null, TimeSpanStyles.AssumeNegative)
        printfn $"'{intervalString}' ({format}) --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
    
    // Parse a single number using the "%s" custom format string. 
    let format = "%s"
    try
        let interval = TimeSpan.ParseExact(intervalString, format, null, TimeSpanStyles.AssumeNegative)
        printfn $"'{intervalString}' ({format}) --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
// The example displays the following output:
//    '17:14' (h\:mm) --> -17:14:00
//    '17:14:48' (g) --> 17:14:48
//    '17:14:48.153' (h\:mm\:ss\.fff) --> -17:14:48.1530000
//    '3:17:14:48.153' (G) --> 3.17:14:48.1530000
//    '3:17:14:48.153' (d\:hh\:mm\:ss\.fff) --> -3.17:14:48.1530000
//    '3:17:14:48,153' (G) --> 3.17:14:48.1530000
//    '12' (c) --> 12.00:00:00
//    '12' (%h) --> -12:00:00
//    '12' (%s) --> -00:00:12
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim intervalString, format As String
      Dim interval As TimeSpan
      Dim culture As CultureInfo = Nothing
      
      ' Parse hour:minute value with custom format specifier.
      intervalString = "17:14"
      format = "h\:mm"
      culture = CultureInfo.CurrentCulture
      Try
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        culture, TimeSpanStyles.AssumeNegative)
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try      
      
      ' Parse hour:minute:second value with "g" specifier.
      intervalString = "17:14:48"
      format = "g"
      culture = CultureInfo.InvariantCulture
      Try
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        culture, TimeSpanStyles.AssumeNegative)
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 
      
      ' Parse hours:minute.second value with custom format specifier.     
      intervalString = "17:14:48.153"
      format = "h\:mm\:ss\.fff"
      culture = Nothing
      Try
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        culture, TimeSpanStyles.AssumeNegative)
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 

      ' Parse days:hours:minute.second value with "G" specifier 
      ' and current (en-US) culture.     
      intervalString = "3:17:14:48.153"
      format = "G"
      culture = CultureInfo.CurrentCulture
      Try
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        culture, TimeSpanStyles.AssumeNegative)
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 
            
      ' Parse days:hours:minute.second value with a custom format specifier.     
      intervalString = "3:17:14:48.153"
      format = "d\:hh\:mm\:ss\.fff"
      culture = Nothing
      Try
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        culture, TimeSpanStyles.AssumeNegative)
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 
      
      ' Parse days:hours:minute.second value with "G" specifier 
      ' and fr-FR culture.     
      intervalString = "3:17:14:48,153"
      format = "G"
      culture = New CultureInfo("fr-FR")
      Try
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        culture, TimeSpanStyles.AssumeNegative)
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 

      ' Parse a single number using the "c" standard format string. 
      intervalString = "12"
      format = "c"
      Try
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        Nothing, TimeSpanStyles.AssumeNegative)
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 
      
      ' Parse a single number using the "%h" custom format string. 
      format = "%h"
      Try
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        Nothing, TimeSpanStyles.AssumeNegative)
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 
      
      ' Parse a single number using the "%s" custom format string. 
      format = "%s"
      Try
         interval = TimeSpan.ParseExact(intervalString, format, 
                                        Nothing, TimeSpanStyles.AssumeNegative)
         Console.WriteLine("'{0}' ({1}) --> {2}", intervalString, format, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 
   End Sub
End Module
' The example displays the following output:
'    '17:14' (h\:mm) --> -17:14:00
'    '17:14:48' (g) --> 17:14:48
'    '17:14:48.153' (h\:mm\:ss\.fff) --> -17:14:48.1530000
'    '3:17:14:48.153' (G) --> 3.17:14:48.1530000
'    '3:17:14:48.153' (d\:hh\:mm\:ss\.fff) --> -3.17:14:48.1530000
'    '3:17:14:48,153' (G) --> 3.17:14:48.1530000
'    '12' (c) --> 12.00:00:00
'    '12' (%h) --> -12:00:00
'    '12' (%s) --> -00:00:12

Opmerkingen

De ParseExact methode parseert de tekenreeksweergave van een tijdsinterval. Deze moet de indeling hebben die is gedefinieerd door de format parameter, behalve dat voorloop- en volgspaties worden genegeerd. Omdat input moet voldoen aan de indeling van exact, moet u altijd uitzonderingsafhandeling gebruiken bij het converteren van format een tekenreeksinvoer door de gebruiker naar een tijdsinterval. Als u liever geen uitzonderingsafhandeling gebruikt, kunt u in plaats daarvan de TryParseExact(String, String, IFormatProvider, TimeSpanStyles, TimeSpan) methode aanroepen.

De format parameter is een tekenreeks die één standaardnotatieaanduiding of een of meer aangepaste notatieaanduidingen bevat die de vereiste indeling definiëren input. Zie Standard TimeSpan Format Strings en Custom TimeSpan Format Strings voor meer informatie over geldige notatietekenreeksen.

Important

De ParseExact methode gebruikt de conventies van de cultuur die is opgegeven door de formatProvider parameter alleen als format het een standaardnotatietekenreeks TimeSpan is waarvan de waarde 'g' of 'G' is. De tekenreeksen 'c', 't' en 'T' maken gebruik van de opmaakconventies van de invariante cultuur. Tekenreeksen met aangepaste notatie definiëren de exacte indeling van de invoertekenreeks en gebruiken letterlijke tekens om de onderdelen van een tijdsinterval te scheiden.

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

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

De styles parameter is van invloed op de interpretatie van tekenreeksen die worden geparseerd met aangepaste notatietekenreeksen. Het bepaalt of input wordt geïnterpreteerd als een negatief tijdsinterval alleen als een negatief teken aanwezig is (TimeSpanStyles.None) of dat het altijd wordt geïnterpreteerd als een negatief tijdsinterval (TimeSpanStyles.AssumeNegative). Als TimeSpanStyles.AssumeNegative dit niet wordt gebruikt, format moet u een letterlijk negatief teken (zoals '\-') opnemen om een negatief tijdsinterval te parseren.

Zie ook

Van toepassing op

ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, TimeSpanStyles)

Converteert de tekenreeksweergave van een tijdsinterval naar het TimeSpan equivalent ervan met behulp van de opgegeven notaties, cultuurspecifieke notatiegegevens en stijlen. De indeling van de tekenreeksweergave moet exact overeenkomen met een van de opgegeven notaties.

public static TimeSpan ParseExact(ReadOnlySpan<char> input, string[] formats, IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles = System.Globalization.TimeSpanStyles.None);
static member ParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.TimeSpanStyles -> TimeSpan
Public Shared Function ParseExact (input As ReadOnlySpan(Of Char), formats As String(), formatProvider As IFormatProvider, Optional styles As TimeSpanStyles = System.Globalization.TimeSpanStyles.None) As TimeSpan

Parameters

input
ReadOnlySpan<Char>

Een periode die het tijdsinterval aangeeft dat moet worden geconverteerd.

formats
String[]

Een matrix met standaard- of aangepaste notatietekenreeksen die de vereiste indeling definiëren input.

formatProvider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie biedt.

styles
TimeSpanStyles

Een bitsgewijze combinatie van opsommingswaarden waarmee de stijlelementen worden gedefinieerd die mogelijk aanwezig zijn in invoer.

Retouren

Een tijdsinterval dat overeenkomt met input, zoals opgegeven door formats, formatProvideren styles.

Van toepassing op

ParseExact(String, String[], IFormatProvider, TimeSpanStyles)

Converteert de tekenreeksweergave van een tijdsinterval naar het TimeSpan equivalent ervan met behulp van de opgegeven notaties, cultuurspecifieke notatiegegevens en stijlen. De indeling van de tekenreeksweergave moet exact overeenkomen met een van de opgegeven notaties.

public:
 static TimeSpan ParseExact(System::String ^ input, cli::array <System::String ^> ^ formats, IFormatProvider ^ formatProvider, System::Globalization::TimeSpanStyles styles);
public static TimeSpan ParseExact(string input, string[] formats, IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles);
static member ParseExact : string * string[] * IFormatProvider * System.Globalization.TimeSpanStyles -> TimeSpan
Public Shared Function ParseExact (input As String, formats As String(), formatProvider As IFormatProvider, styles As TimeSpanStyles) As TimeSpan

Parameters

input
String

Een tekenreeks die het tijdsinterval aangeeft dat moet worden geconverteerd.

formats
String[]

Een matrix met standaard- of aangepaste notatietekenreeksen die de vereiste indeling definiëren input.

formatProvider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie biedt.

styles
TimeSpanStyles

Een bitsgewijze combinatie van opsommingswaarden waarmee de stijlelementen worden gedefinieerd die mogelijk aanwezig zijn in invoer.

Retouren

Een tijdsinterval dat overeenkomt met input, zoals opgegeven door formats, formatProvideren styles.

Uitzonderingen

styles is een ongeldige TimeSpanStyles waarde.

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 de ParseExact(String, String[], IFormatProvider, TimeSpanStyles) methode aangeroepen om elk element van een tekenreeksmatrix te converteren naar een TimeSpan waarde. De tekenreeksen kunnen een tijdsinterval vertegenwoordigen in de algemene korte notatie of de algemene lange notatie.

Daarnaast wordt in het voorbeeld de manier gewijzigd waarop de tijdsintervalmethoden één cijfer interpreteren. Normaal gesproken wordt één cijfer geïnterpreteerd als het aantal dagen in een tijdsinterval. In plaats daarvan wordt de %h tekenreeks voor aangepaste notatie gebruikt om één cijfer te interpreteren als het aantal uren. Houd er rekening mee dat de tekenreeks voor aangepaste %h notatie moet voorafgaan aan de andere opmaaktekenreeksen in de formats matrix om deze wijziging effectief te maken. Let ook op de uitvoer dat de TimeSpanStyles.AssumeNegative vlag die is opgegeven in de methode-aanroep alleen wordt gebruikt bij het parseren van een tekenreeks met deze notatieaanduiding.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] inputs = { "3", "16:42", "1:6:52:35.0625", 
                          "1:6:52:35,0625" }; 
      string[] formats = { "%h", "g", "G" };
      TimeSpan interval;
      CultureInfo culture = new CultureInfo("de-DE");
      
      // Parse each string in inputs using formats and the de-DE culture.
      foreach (string input in inputs) {
         try {
            interval = TimeSpan.ParseExact(input, formats, culture,
                                           TimeSpanStyles.AssumeNegative);
            Console.WriteLine("{0} --> {1:c}", input, interval);
         }
         catch (FormatException) {
            Console.WriteLine("{0} --> Bad Format", input);
         }      
         catch (OverflowException) {
            Console.WriteLine("{0} --> Overflow", input);   
         }            
      }
   }
}
// The example displays the following output:
//       3 --> -03:00:00
//       16:42 --> 16:42:00
//       1:6:52:35.0625 --> Bad Format
//       1:6:52:35,0625 --> 1.06:52:35.0625000
open System
open System.Globalization

let inputs = 
    [| "3"; "16:42"; "1:6:52:35.0625"; "1:6:52:35,0625" |] 
let formats = [| "%h"; "g"; "G" |]
let culture = CultureInfo "de-DE"

// Parse each string in inputs using formats and the de-DE culture.
for input in inputs do
    try
        let interval = 
            TimeSpan.ParseExact(input, formats, culture, TimeSpanStyles.AssumeNegative)
        printfn $"{input} --> {interval:c}"
    with
    | :? FormatException ->
        printfn $"{input} --> Bad Format"
    | :? OverflowException ->
        printfn $"{input} --> Overflow"
// The example displays the following output:
//       3 --> -03:00:00
//       16:42 --> 16:42:00
//       1:6:52:35.0625 --> Bad Format
//       1:6:52:35,0625 --> 1.06:52:35.0625000
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim inputs() As String = { "3", "16:42", "1:6:52:35.0625", 
                                 "1:6:52:35,0625" } 
      Dim formats() As String = { "%h", "g", "G" }
      Dim interval As TimeSpan
      Dim culture As New CultureInfo("de-DE")
      
      ' Parse each string in inputs using formats and the de-DE culture.
      For Each input As String In inputs
         Try
            interval = TimeSpan.ParseExact(input, formats, culture, 
                                           TimeSpanStyles.AssumeNegative)
            Console.WriteLine("{0} --> {1:c}", input, interval)   
         Catch e As FormatException
            Console.WriteLine("{0} --> Bad Format", input)   
         Catch e As OverflowException
            Console.WriteLine("{0} --> Overflow", input)   
         End Try            
      Next
   End Sub
End Module
' The example displays the following output:
'       3 --> -03:00:00
'       16:42 --> 16:42:00
'       1:6:52:35.0625 --> Bad Format
'       1:6:52:35,0625 --> 1.06:52:35.0625000

Opmerkingen

De ParseExact(String, String[], IFormatProvider, TimeSpanStyles) methode parseert de tekenreeksweergave van een tijdsinterval. Deze moet zich in een van de indelingen bevinden die zijn gedefinieerd door de formats parameter, behalve dat voorloop- en volgspaties worden genegeerd. Omdat input u exact moet voldoen aan een van de indelingen die zijn opgegeven, formatsmoet u altijd uitzonderingsafhandeling gebruiken bij het converteren van een tekenreeksinvoer door de gebruiker naar een tijdsinterval. Als u liever geen uitzonderingsafhandeling gebruikt, kunt u in plaats daarvan de TryParseExact(String, String[], IFormatProvider, TimeSpanStyles, TimeSpan) methode aanroepen.

De formats parameter is een tekenreeksmatrix waarvan de elementen bestaan uit één standaardnotatieaanduiding of een of meer aangepaste notatieaanduidingen die de vereiste indeling inputdefiniëren. Zie Standard TimeSpan Format Strings en Custom TimeSpan Format Strings voor meer informatie over geldige notatietekenreeksen. input moet exact overeenkomen met een lid van formats de parseringsbewerking om te slagen. De parseringsbewerking probeert overeen te komen met input elk element in formats het begin met het eerste element in de matrix.

Important

De ParseExact methode gebruikt de conventies van de cultuur die is opgegeven door de formatProvider parameter alleen als de notatietekenreeks die wordt gebruikt om te parseren input een standaardnotatietekenreeks TimeSpan is waarvan de waarde 'g' of 'G' is. De tekenreeksen 'c', 't' en 'T' maken gebruik van de opmaakconventies van de invariante cultuur. Tekenreeksen met aangepaste notatie definiëren de exacte indeling van de invoertekenreeks en gebruiken letterlijke tekens om de onderdelen van een tijdsinterval te scheiden.

De formatProvider parameter is een IFormatProvider implementatie die cultuurspecifieke informatie biedt over de indeling van de geretourneerde tekenreeks als de notatietekenreeks die wordt gebruikt om te parseren input een standaardnotatietekenreeks is. De formatProvider parameter kan een van de volgende zijn:

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

De styles parameter is van invloed op de interpretatie van tekenreeksen die worden geparseerd met aangepaste notatietekenreeksen. Het bepaalt of input wordt geïnterpreteerd als een negatief tijdsinterval alleen als een negatief teken aanwezig is (TimeSpanStyles.None) of dat het altijd wordt geïnterpreteerd als een negatief tijdsinterval (TimeSpanStyles.AssumeNegative). Als TimeSpanStyles.AssumeNegative dit niet wordt gebruikt, format moet u een letterlijk negatief teken (zoals '\-') opnemen om een negatief tijdsinterval te parseren.

Zie ook

Van toepassing op

ParseExact(String, String[], IFormatProvider)

Converteert de tekenreeksweergave van een tijdsinterval naar TimeSpan het equivalent ervan met behulp van de opgegeven matrix van notatietekenreeksen en cultuurspecifieke notatiegegevens. De indeling van de tekenreeksweergave moet exact overeenkomen met een van de opgegeven notaties.

public:
 static TimeSpan ParseExact(System::String ^ input, cli::array <System::String ^> ^ formats, IFormatProvider ^ formatProvider);
public static TimeSpan ParseExact(string input, string[] formats, IFormatProvider formatProvider);
static member ParseExact : string * string[] * IFormatProvider -> TimeSpan
Public Shared Function ParseExact (input As String, formats As String(), formatProvider As IFormatProvider) As TimeSpan

Parameters

input
String

Een tekenreeks die het tijdsinterval aangeeft dat moet worden geconverteerd.

formats
String[]

Een matrix met standaard- of aangepaste notatietekenreeksen die de vereiste indeling definiëren input.

formatProvider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie biedt.

Retouren

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

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 de ParseExact(String, String[], IFormatProvider) methode aangeroepen om elk element van een tekenreeksmatrix te converteren naar een TimeSpan waarde. In het voorbeeld worden de tekenreeksen geïnterpreteerd met behulp van de opmaakconventies van de Franse - Frankrijk ("fr-FR") cultuur. De tekenreeksen kunnen een tijdsinterval vertegenwoordigen in de algemene korte notatie of de algemene lange notatie.

Daarnaast wordt in het voorbeeld de manier gewijzigd waarop de tijdsintervalmethoden één cijfer interpreteren. Normaal gesproken wordt één cijfer geïnterpreteerd als het aantal dagen in een tijdsinterval. In plaats daarvan wordt de %h tekenreeks voor aangepaste notatie gebruikt om één cijfer te interpreteren als het aantal uren. Houd er rekening mee dat de tekenreeks voor aangepaste %h notatie moet voorafgaan aan de andere opmaaktekenreeksen in de formats matrix om deze wijziging effectief te maken.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] inputs = { "3", "16:42", "1:6:52:35.0625", 
                          "1:6:52:35,0625" }; 
      string[] formats = { "g", "G", "%h"};
      TimeSpan interval;
      CultureInfo culture = new CultureInfo("fr-FR");
      
      // Parse each string in inputs using formats and the fr-FR culture.
      foreach (string input in inputs) {
         try {
            interval = TimeSpan.ParseExact(input, formats, culture);
            Console.WriteLine("{0} --> {1:c}", input, interval);
         }
         catch (FormatException) {
            Console.WriteLine("{0} --> Bad Format", input);
         }      
         catch (OverflowException) {
            Console.WriteLine("{0} --> Overflow", input);   
         }            
      }
   }
}
// The example displays the following output:
//       3 --> 03:00:00
//       16:42 --> 16:42:00
//       1:6:52:35.0625 --> Bad Format
//       1:6:52:35,0625 --> 1.06:52:35.0625000
open System
open System.Globalization

let inputs = [| "3"; "16:42"; "1:6:52:35.0625"; "1:6:52:35,0625" |] 
let formats = [| "g"; "G"; "%h" |]
let culture = CultureInfo "fr-FR"

// Parse each string in inputs using formats and the fr-FR culture.
for input in inputs do
    try
        let interval = TimeSpan.ParseExact(input, formats, culture)
        printfn $"{input} --> {interval:c}"
    with
    | :? FormatException ->
        printfn $"{input} --> Bad Format"
    | :? OverflowException ->
        printfn $"{input} --> Overflow"
// The example displays the following output:
//       3 --> 03:00:00
//       16:42 --> 16:42:00
//       1:6:52:35.0625 --> Bad Format
//       1:6:52:35,0625 --> 1.06:52:35.0625000
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim inputs() As String = { "3", "16:42", "1:6:52:35.0625", 
                                 "1:6:52:35,0625" } 
      Dim formats() As String = { "%h", "g", "G" }
      Dim interval As TimeSpan
      Dim culture As New CultureInfo("fr-FR")
      
      ' Parse each string in inputs using formats and the fr-FR culture.
      For Each input As String In inputs
         Try
            interval = TimeSpan.ParseExact(input, formats, culture)
            Console.WriteLine("{0} --> {1:c}", input, interval)   
         Catch e As FormatException
            Console.WriteLine("{0} --> Bad Format", input)   
         Catch e As OverflowException
            Console.WriteLine("{0} --> Overflow", input)   
         End Try            
      Next
   End Sub
End Module
' The example displays the following output:
'       3 --> 3.00:00:00
'       16:42 --> 16:42:00
'       1:6:52:35.0625 --> Bad Format
'       1:6:52:35,0625 --> 1.06:52:35.0625000

Opmerkingen

De ParseExact(String, String, IFormatProvider) methode parseert de tekenreeksweergave van een tijdsinterval. Deze moet zich in een van de indelingen bevinden die zijn gedefinieerd door de formats parameter, behalve dat voorloop- en volgspaties worden genegeerd. Omdat input u exact moet voldoen aan een van de indelingen die zijn opgegeven, formatsmoet u altijd uitzonderingsafhandeling gebruiken bij het converteren van een tekenreeksinvoer door de gebruiker naar een tijdsinterval. Als u liever geen uitzonderingsafhandeling gebruikt, kunt u in plaats daarvan de TryParseExact(String, String[], IFormatProvider, TimeSpan) methode aanroepen.

De formats parameter is een tekenreeksmatrix waarvan de elementen bestaan uit één standaardnotatieaanduiding of een of meer aangepaste notatieaanduidingen die de vereiste indeling inputdefiniëren. Zie Standard TimeSpan Format Strings en Custom TimeSpan Format Strings voor meer informatie over geldige notatietekenreeksen. input moet exact overeenkomen met een lid van formats de parseringsbewerking om te slagen. De parseringsbewerking probeert overeen te komen met input elk element in formats het begin met het eerste element in de matrix.

Important

De ParseExact methode gebruikt de conventies van de cultuur die is opgegeven door de formatProvider parameter alleen als de notatietekenreeks die wordt gebruikt om te parseren input een standaardnotatietekenreeks TimeSpan is waarvan de waarde 'g' of 'G' is. De tekenreeksen 'c', 't' en 'T' maken gebruik van de opmaakconventies van de invariante cultuur. Tekenreeksen met aangepaste notatie definiëren de exacte indeling van de invoertekenreeks en gebruiken letterlijke tekens om de onderdelen van een tijdsinterval te scheiden.

De formatProvider parameter is een IFormatProvider implementatie die cultuurspecifieke informatie biedt over de indeling van de geretourneerde tekenreeks als de notatietekenreeks die wordt gebruikt om te parseren input een standaardnotatietekenreeks is. De formatProvider parameter kan een van de volgende zijn:

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

Zie ook

Van toepassing op

ParseExact(String, String, IFormatProvider)

Converteert de tekenreeksweergave van een tijdsinterval naar het TimeSpan equivalent ervan met behulp van de opgegeven notatie- en cultuurspecifieke notatiegegevens. De indeling van de tekenreeksweergave moet exact overeenkomen met de opgegeven indeling.

public:
 static TimeSpan ParseExact(System::String ^ input, System::String ^ format, IFormatProvider ^ formatProvider);
public static TimeSpan ParseExact(string input, string format, IFormatProvider formatProvider);
static member ParseExact : string * string * IFormatProvider -> TimeSpan
Public Shared Function ParseExact (input As String, format As String, formatProvider As IFormatProvider) As TimeSpan

Parameters

input
String

Een tekenreeks die het tijdsinterval aangeeft dat moet worden geconverteerd.

format
String

Een standaard- of aangepaste notatietekenreeks die de vereiste indeling definieert input.

formatProvider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie biedt.

Retouren

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

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 de ParseExact(String, String, IFormatProvider) methode gebruikt om verschillende tekenreeksweergaven van tijdsintervallen te parseren met behulp van verschillende notatietekenreeksen en culturen.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string intervalString, format;
      TimeSpan interval;
      CultureInfo culture;
      
      // Parse hour:minute value with "g" specifier current culture.
      intervalString = "17:14";
      format = "g";
      culture = CultureInfo.CurrentCulture;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, culture);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", 
                           intervalString, format);
      }                     
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      }      
      
      // Parse hour:minute:second value with "G" specifier.
      intervalString = "17:14:48";
      format = "G";
      culture = CultureInfo.InvariantCulture;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, culture);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }   
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 
      
      // Parse hours:minute.second value with "G" specifier 
      // and current (en-US) culture.     
      intervalString = "17:14:48.153";
      format = "G";
      culture = CultureInfo.CurrentCulture;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, culture);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 

      // Parse days:hours:minute.second value with "G" specifier 
      // and current (en-US) culture.     
      intervalString = "3:17:14:48.153";
      format = "G";
      culture = CultureInfo.CurrentCulture;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, culture);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }   
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 
            
      // Parse days:hours:minute.second value with "G" specifier 
      // and fr-FR culture.     
      intervalString = "3:17:14:48.153";
      format = "G";
      culture = new CultureInfo("fr-FR");
      try {
         interval = TimeSpan.ParseExact(intervalString, format, culture);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 
      
      // Parse days:hours:minute.second value with "G" specifier 
      // and fr-FR culture.     
      intervalString = "3:17:14:48,153";
      format = "G";
      try {
         interval = TimeSpan.ParseExact(intervalString, format, culture);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 

      // Parse a single number using the "c" standard format string. 
      intervalString = "12";
      format = "c";
      try {
         interval = TimeSpan.ParseExact(intervalString, format, null);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 
      
      // Parse a single number using the "%h" custom format string. 
      format = "%h";
      try {
         interval = TimeSpan.ParseExact(intervalString, format, null);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 
      
      // Parse a single number using the "%s" custom format string. 
      format = "%s";
      try {
         interval = TimeSpan.ParseExact(intervalString, format, null);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      }
   }
}
// The example displays the following output:
//       '17:14' --> 17:14:00
//       '17:14:48': Bad Format for 'G'
//       '17:14:48.153': Bad Format for 'G'
//       '3:17:14:48.153' --> 3.17:14:48.1530000
//       '3:17:14:48.153': Bad Format for 'G'
//       '3:17:14:48,153' --> 3.17:14:48.1530000
//       '12' --> 12.00:00:00
//       '12' --> 12:00:00
//       '12' --> 00:00:12
open System
open System.Globalization

do
    // Parse hour:minute value with "g" specifier current culture.
    let intervalString = "17:14"
    let format = "g"
    let culture = CultureInfo.CurrentCulture
    try
        let interval = TimeSpan.ParseExact(intervalString, format, culture)
        printfn $"'{intervalString}' --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
    
    // Parse hour:minute:second value with "G" specifier.
    let intervalString = "17:14:48"
    let format = "G"
    let culture = CultureInfo.InvariantCulture
    try
        let interval = TimeSpan.ParseExact(intervalString, format, culture)
        printfn $"'{intervalString}' --> {interval}"
    with
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
    
    // Parse hours:minute.second value with "G" specifier 
    // and current (en-US) culture.     
    let intervalString = "17:14:48.153"
    let format = "G"
    let culture = CultureInfo.CurrentCulture
    try
        let interval = TimeSpan.ParseExact(intervalString, format, culture)
        printfn $"'{intervalString}' --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"

    // Parse days:hours:minute.second value with "G" specifier 
    // and current (en-US) culture.     
    let intervalString = "3:17:14:48.153"
    let format = "G"
    let culture = CultureInfo.CurrentCulture
    try
        let interval = TimeSpan.ParseExact(intervalString, format, culture)
        printfn $"'{intervalString}' --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
        
    // Parse days:hours:minute.second value with "G" specifier 
    // and fr-FR culture.     
    let intervalString = "3:17:14:48.153"
    let format = "G"
    let culture = CultureInfo "fr-FR"
    try
        let interval = TimeSpan.ParseExact(intervalString, format, culture)
        printfn $"'{intervalString}' --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
    
    // Parse days:hours:minute.second value with "G" specifier 
    // and fr-FR culture.     
    let intervalString = "3:17:14:48,153"
    let format = "G"
    try
        let interval = TimeSpan.ParseExact(intervalString, format, culture)
        printfn $"'{intervalString}' --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"

    // Parse a single number using the "c" standard format string. 
    let intervalString = "12"
    let format = "c"
    try
        let interval = TimeSpan.ParseExact(intervalString, format, null)
        printfn $"'{intervalString}' --> {interval}"
    with
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
    
    // Parse a single number using the "%h" custom format string. 
    let format = "%h"
    try
        let interval = TimeSpan.ParseExact(intervalString, format, null)
        printfn $"'{intervalString}' --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
    
    // Parse a single number using the "%s" custom format string. 
    let format = "%s"
    try
        let interval = TimeSpan.ParseExact(intervalString, format, null)
        printfn $"'{intervalString}' --> {interval}"
    with 
    | :? FormatException ->
        printfn $"'{intervalString}': Bad Format for '{format}'"
    | :? OverflowException ->
        printfn $"'{intervalString}': Overflow"
// The example displays the following output:
//       '17:14' --> 17:14:00
//       '17:14:48': Bad Format for 'G'
//       '17:14:48.153': Bad Format for 'G'
//       '3:17:14:48.153' --> 3.17:14:48.1530000
//       '3:17:14:48.153': Bad Format for 'G'
//       '3:17:14:48,153' --> 3.17:14:48.1530000
//       '12' --> 12.00:00:00
//       '12' --> 12:00:00
//       '12' --> 00:00:12
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim intervalString, format As String
      Dim interval As TimeSpan
      Dim culture As CultureInfo
      
      ' Parse hour:minute value with "g" specifier current culture.
      intervalString = "17:14"
      format = "g"
      culture = CultureInfo.CurrentCulture
      Try
         interval = TimeSpan.ParseExact(intervalString, format, culture)
         Console.WriteLine("'{0}' --> {1}", intervalString, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try      
      
      ' Parse hour:minute:second value with "G" specifier.
      intervalString = "17:14:48"
      format = "G"
      culture = CultureInfo.InvariantCulture
      Try
         interval = TimeSpan.ParseExact(intervalString, format, culture)
         Console.WriteLine("'{0}' --> {1}", intervalString, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 
      
      ' Parse hours:minute.second value with "G" specifier 
      ' and current (en-US) culture.     
      intervalString = "17:14:48.153"
      format = "G"
      culture = CultureInfo.CurrentCulture
      Try
         interval = TimeSpan.ParseExact(intervalString, format, culture)
         Console.WriteLine("'{0}' --> {1}", intervalString, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 

      ' Parse days:hours:minute.second value with "G" specifier 
      ' and current (en-US) culture.     
      intervalString = "3:17:14:48.153"
      format = "G"
      culture = CultureInfo.CurrentCulture
      Try
         interval = TimeSpan.ParseExact(intervalString, format, culture)
         Console.WriteLine("'{0}' --> {1}", intervalString, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 
            
      ' Parse days:hours:minute.second value with "G" specifier 
      ' and fr-FR culture.     
      intervalString = "3:17:14:48.153"
      format = "G"
      culture = New CultureInfo("fr-FR")
      Try
         interval = TimeSpan.ParseExact(intervalString, format, culture)
         Console.WriteLine("'{0}' --> {1}", intervalString, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 
      
      ' Parse days:hours:minute.second value with "G" specifier 
      ' and fr-FR culture.     
      intervalString = "3:17:14:48,153"
      format = "G"
      culture = New CultureInfo("fr-FR")
      Try
         interval = TimeSpan.ParseExact(intervalString, format, culture)
         Console.WriteLine("'{0}' --> {1}", intervalString, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 

      ' Parse a single number using the "c" standard format string. 
      intervalString = "12"
      format = "c"
      Try
         interval = TimeSpan.ParseExact(intervalString, format, Nothing)
         Console.WriteLine("'{0}' --> {1}", intervalString, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 
      
      ' Parse a single number using the "%h" custom format string. 
      format = "%h"
      Try
         interval = TimeSpan.ParseExact(intervalString, format, Nothing)
         Console.WriteLine("'{0}' --> {1}", intervalString, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 
      
      ' Parse a single number using the "%s" custom format string. 
      format = "%s"
      Try
         interval = TimeSpan.ParseExact(intervalString, format, Nothing)
         Console.WriteLine("'{0}' --> {1}", intervalString, interval)
      Catch e As FormatException
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format)
      Catch e As OverflowException
         Console.WriteLine("'{0}': Overflow", intervalString)
      End Try 
   End Sub
End Module
' The example displays the following output:
'       '17:14' --> 17:14:00
'       '17:14:48': Bad Format for 'G'
'       '17:14:48.153': Bad Format for 'G'
'       '3:17:14:48.153' --> 3.17:14:48.1530000
'       '3:17:14:48.153': Bad Format for 'G'
'       '3:17:14:48,153' --> 3.17:14:48.1530000
'       '12' --> 12.00:00:00
'       '12' --> 12:00:00
'       '12' --> 00:00:12

Opmerkingen

De ParseExact(String, String, IFormatProvider) methode parseert de tekenreeksweergave van een tijdsinterval. Deze moet de indeling hebben die is gedefinieerd door de format parameter, behalve dat voorloop- en volgspaties worden genegeerd. Omdat input moet voldoen aan de indeling van exact, moet u altijd uitzonderingsafhandeling gebruiken bij het converteren van format een tekenreeksinvoer door de gebruiker naar een tijdsinterval. Als u liever geen uitzonderingsafhandeling gebruikt, kunt u in plaats daarvan de TryParseExact(String, String, IFormatProvider, TimeSpan) methode aanroepen.

De format parameter is een tekenreeks die één standaardnotatieaanduiding of een of meer aangepaste notatieaanduidingen bevat die de vereiste indeling definiëren input. Zie Standard TimeSpan Format Strings en Custom TimeSpan Format Strings voor meer informatie over geldige notatietekenreeksen.

Important

De ParseExact methode gebruikt de conventies van de cultuur die is opgegeven door de formatProvider parameter alleen als format het een standaardnotatietekenreeks TimeSpan is waarvan de waarde 'g' of 'G' is. De tekenreeksen 'c', 't' en 'T' maken gebruik van de opmaakconventies van de invariante cultuur. Tekenreeksen met aangepaste notatie definiëren de exacte indeling van de invoertekenreeks en gebruiken letterlijke tekens om de onderdelen van een tijdsinterval te scheiden.

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

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

Zie ook

Van toepassing op

ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, TimeSpanStyles)

Converteert de tekenperiode van een tijdsinterval naar het TimeSpan equivalent ervan met behulp van de opgegeven notatie- en cultuurspecifieke notatiegegevens. De indeling van de tekenreeksweergave moet exact overeenkomen met de opgegeven indeling.

public static TimeSpan ParseExact(ReadOnlySpan<char> input, ReadOnlySpan<char> format, IFormatProvider formatProvider, System.Globalization.TimeSpanStyles styles = System.Globalization.TimeSpanStyles.None);
static member ParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.TimeSpanStyles -> TimeSpan
Public Shared Function ParseExact (input As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), formatProvider As IFormatProvider, Optional styles As TimeSpanStyles = System.Globalization.TimeSpanStyles.None) As TimeSpan

Parameters

input
ReadOnlySpan<Char>

Een periode die het tijdsinterval aangeeft dat moet worden geconverteerd.

format
ReadOnlySpan<Char>

Een standaard- of aangepaste notatietekenreeks die de vereiste indeling definieert input.

formatProvider
IFormatProvider

Een object dat cultuurspecifieke opmaakinformatie biedt.

styles
TimeSpanStyles

Een bitsgewijze combinatie van opsommingswaarden waarmee de stijlelementen worden gedefinieerd die mogelijk aanwezig zijn in input.

Retouren

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

Van toepassing op