TimeSpan.Parse Méthode

Définition

Convertit la représentation sous forme de chaîne d’un intervalle de temps en son TimeSpan équivalent.

Surcharges

Nom Description
Parse(ReadOnlySpan<Char>, IFormatProvider)

Convertit la représentation d’étendue d’un intervalle de temps en son TimeSpan équivalent à l’aide des informations de format spécifiques à la culture spécifiées.

Parse(String, IFormatProvider)

Convertit la représentation sous forme de chaîne d’un intervalle de temps en son TimeSpan équivalent à l’aide des informations de format spécifiques à la culture spécifiées.

Parse(String)

Convertit la représentation sous forme de chaîne d’un intervalle de temps en son TimeSpan équivalent.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Source:
TimeSpan.cs
Source:
TimeSpan.cs
Source:
TimeSpan.cs
Source:
TimeSpan.cs
Source:
TimeSpan.cs

Convertit la représentation d’étendue d’un intervalle de temps en son TimeSpan équivalent à l’aide des informations de format spécifiques à la culture spécifiées.

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

Paramètres

input
ReadOnlySpan<Char>

Étendue contenant les caractères qui représentent l’intervalle de temps à convertir.

formatProvider
IFormatProvider

Objet qui fournit des informations de mise en forme propres à la culture.

Retours

Intervalle de temps qui correspond à input, tel que spécifié par formatProvider.

Implémente

S’applique à

Parse(String, IFormatProvider)

Source:
TimeSpan.cs
Source:
TimeSpan.cs
Source:
TimeSpan.cs
Source:
TimeSpan.cs
Source:
TimeSpan.cs

Convertit la représentation sous forme de chaîne d’un intervalle de temps en son TimeSpan équivalent à l’aide des informations de format spécifiques à la culture spécifiées.

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

Paramètres

input
String

Chaîne qui spécifie l’intervalle de temps à convertir.

formatProvider
IFormatProvider

Objet qui fournit des informations de mise en forme propres à la culture.

Retours

Intervalle de temps qui correspond à input, tel que spécifié par formatProvider.

Implémente

Exceptions

input a la valeur null.

input a un format non valide.

input représente un nombre inférieur à TimeSpan.MinValue ou supérieur à TimeSpan.MaxValue.

- ou -

Au moins un des composants jours, heures, minutes ou secondes input est en dehors de sa plage valide.

Exemples

L’exemple suivant définit un tableau d’objets CultureInfo et utilise chaque objet dans les appels à la Parse(String, IFormatProvider) méthode pour analyser les éléments d’un tableau de chaînes. L’exemple montre comment les conventions d’une culture spécifique influencent l’opération de mise en forme.

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

Remarques

Cette méthode tente d’analyser input en utilisant chacun des formats spécifiques à la culture pour la culture spécifiée par formatProvider.

Le paramètre formatProvider est une IFormatProvider implémentation qui fournit des informations spécifiques à la culture sur le format de la chaîne retournée. Le formatProvider paramètre peut être l’un des éléments suivants :

Si formatProvidernull est le cas, l’objet DateTimeFormatInfo associé à la culture actuelle est utilisé.

La chaîne d’entrée des Parse méthodes contient une spécification d’intervalle de temps dans le formulaire :

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

Les éléments entre crochets ([ et ]) sont facultatifs. Une sélection de la liste des alternatives placées entre accolades ({ et }) et séparées par des barres verticales (|) est requise. Le tableau suivant décrit chaque élément.

Élément Description
Ws Espace blanc facultatif.
- Un signe moins facultatif, qui indique que TimeSpan est négatif.
d Jours, allant de 0 à 10675199.
. Symbole sensible à la culture qui sépare les jours des heures. Le format invariant utilise un caractère de point (« . »).
Hh Heures, de 0 à 23.
: Symbole de séparation temporelle adapté à la culture. Le format invariant utilise un caractère deux-points (« : »).
mm Minutes, allant de 0 à 59.
ss Secondes facultatives, allant de 0 à 59.
. Symbole sensible à la culture qui sépare les secondes des fractions d’une seconde. Le format invariant utilise un caractère de point (« . »).
Ff Fractions de seconde facultatives, composées d’un à sept chiffres décimaux.

Si la chaîne d’entrée n’est pas une valeur de jour uniquement, elle doit inclure une heure et un composant minutes ; d’autres composants sont facultatifs. S’ils sont présents, les valeurs de chaque composant de temps doivent se trouver dans une plage spécifiée. Par exemple, la valeur de hh, le composant heures, doit être comprise entre 0 et 23. Pour cette raison, le passage de « 23:00:00 » à la Parse méthode retourne un intervalle de temps de 23 heures. En revanche, transmettre « 24:00:00 » retourne un intervalle de temps de 24 jours. Étant donné que « 24 » est en dehors de la plage du composant heures, il est interprété comme le composant jours.

Les composants de la chaîne d’entrée doivent spécifier collectivement un intervalle de temps supérieur ou égal à TimeSpan.MinValue et inférieur ou égal à TimeSpan.MaxValue.

La méthode Parse(String) tente d’analyser la chaîne d’entrée à l’aide de chacun des formats spécifiques à la culture actuelle.

S’applique à

Parse(String)

Source:
TimeSpan.cs
Source:
TimeSpan.cs
Source:
TimeSpan.cs
Source:
TimeSpan.cs
Source:
TimeSpan.cs

Convertit la représentation sous forme de chaîne d’un intervalle de temps en son TimeSpan équivalent.

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

Paramètres

s
String

Chaîne qui spécifie l’intervalle de temps à convertir.

Retours

Intervalle de temps correspondant à s.

Exceptions

s a la valeur null.

s a un format non valide.

s représente un nombre inférieur à TimeSpan.MinValue ou supérieur à TimeSpan.MaxValue.

- ou -

Au moins un des composants jours, heures, minutes ou secondes est en dehors de sa plage valide.

Exemples

L’exemple suivant utilise la Parse méthode pour convertir chaque élément d’un tableau de chaînes en TimeSpan valeur. Il modifie la culture actuelle du système en Croate - Croatie ( »hr-HR« ) et anglais - États-Unis ( »en-US« ) pour illustrer comment la culture système actuelle affecte l’opération d’analyse.

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

Remarques

La chaîne d’entrée des Parse méthodes contient une spécification d’intervalle de temps dans le formulaire :

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

Les éléments entre crochets ([ et ]) sont facultatifs. Une sélection de la liste des alternatives placées entre accolades ({ et }) et séparées par des barres verticales (|) est requise. Le tableau suivant décrit chaque élément.

Élément Description
Ws Espace blanc facultatif.
- Un signe moins facultatif, qui indique que TimeSpan est négatif.
d Jours, allant de 0 à 10675199.
. Symbole sensible à la culture qui sépare les jours des heures. Le format invariant utilise un caractère de point (« . »).
Hh Heures, de 0 à 23.
: Symbole de séparation temporelle adapté à la culture. Le format invariant utilise un caractère deux-points (« : »).
mm Minutes, allant de 0 à 59.
ss Secondes facultatives, allant de 0 à 59.
. Symbole sensible à la culture qui sépare les secondes des fractions d’une seconde. Le format invariant utilise un caractère de point (« . »).
Ff Fractions de seconde facultatives, composées d’un à sept chiffres décimaux.

Si la chaîne d’entrée n’est pas une valeur de jour uniquement, elle doit inclure une heure et un composant minutes ; d’autres composants sont facultatifs. S’ils sont présents, les valeurs de chaque composant de temps doivent se trouver dans une plage spécifiée. Par exemple, la valeur de hh, le composant heures, doit être comprise entre 0 et 23. Pour cette raison, le passage de « 23:00:00 » à la Parse méthode retourne un intervalle de temps de 23 heures. En revanche, transmettre « 24:00:00 » retourne un intervalle de temps de 24 jours. Étant donné que « 24 » est en dehors de la plage du composant heures, il est interprété comme le composant jours.

Les composants de la chaîne d’entrée doivent spécifier collectivement un intervalle de temps supérieur ou égal à TimeSpan.MinValue et inférieur ou égal à TimeSpan.MaxValue.

La méthode Parse(String) tente d’analyser la chaîne d’entrée à l’aide de chacun des formats spécifiques à la culture actuelle.

S’applique à