Partager via


Méthode System.TimeSpan.Parse

Cet article vous offre des remarques complémentaires à la documentation de référence pour cette API.

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.
- Signe moins facultatif, qui indique un négatif TimeSpan.
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 allant de 0 à 23.
: Symbole de séparateur de temps sensible à 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, le passage de « 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 Parse(String) méthode tente d’analyser la chaîne d’entrée à l’aide de chacun des formats spécifiques à la culture pour la culture actuelle.

Remarques pour les appelants

Lorsqu’un composant d’intervalle de temps de la chaîne à analyser contient plus de sept chiffres, les opérations d’analyse dans .NET Framework 3.5 et les versions antérieures peuvent se comporter différemment des opérations d’analyse dans .NET Framework 4 et versions ultérieures. Dans certains cas, les opérations d’analyse qui réussissent dans .NET Framework 3.5 et les versions antérieures peuvent échouer et lever un OverflowException fichier dans .NET Framework 4 et versions ultérieures. Dans d’autres cas, les opérations d’analyse qui lèvent un FormatException fichier .NET Framework 3.5 et versions antérieures peuvent échouer et lever un OverflowException fichier dans .NET Framework 4 et versions ultérieures. L’exemple suivant illustre les deux scénarios.

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

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

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

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