TimeSpan.Parse Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Convertit la représentation sous forme de chaîne d'un intervalle de temps en TimeSpan équivalent.
Surcharges
Parse(String) |
Convertit la représentation sous forme de chaîne d'un intervalle de temps en TimeSpan équivalent. |
Parse(ReadOnlySpan<Char>, IFormatProvider) |
Convertit la représentation sous forme d’étendue d'un intervalle de temps dans son équivalent TimeSpan à 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 dans son équivalent TimeSpan à 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 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 qui correspond à s
.
Exceptions
s
a la valeur null
.
s
a un format non valide.
s
représente un nombre qui est inférieur à MinValue ou supérieur à MaxValue.
- ou - Au moins un des composants des 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 une TimeSpan valeur. Il remplace la culture actuelle du système par Croate-Croatie (« HR-HR ») et anglais-États-Unis (« en-US ») pour illustrer la façon dont la culture système actuelle affecte l’opération d’analyse.
using System;
using System.Globalization;
using System.Threading;
public class Example
{
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
Imports System.Globalization
Imports System.Threading
Module Example
Public Sub Main()
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
End Sub
End Module
' 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
Le s
paramètre contient une spécification d’intervalle de temps au format suivant :
[WS] [-] { d | [d.] hh:mm[ :SS[.FF]]} [WS]
Les éléments entre crochets ([ et ]) sont facultatifs. Une sélection de la liste d’alternatives 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, entre 0 et 10675199. |
. | Symbole dépendante de la culture qui sépare les jours des heures. Le format invariant utilise un point ("."). |
hh | Heures, entre 0 et 23. |
: | Symbole de séparateur d’heure dépendante de la culture. Le format invariant utilise un caractère deux-points (« : »). |
mm | Minutes, entre 0 et 59. |
ss | Secondes facultatives, entre 0 et 59. |
. | Symbole dépendante de la culture qui sépare les secondes des fractions de seconde. Le format invariant utilise un point ("."). |
FF | Fractions de seconde facultatives, composées de un à sept chiffres décimaux. |
Si l' s
argument n’est pas une valeur de jour uniquement, il doit inclure un composant « heures » et « minutes »; les autres composants sont facultatifs. S’ils sont présents, les valeurs de chaque composant de temps doivent être comprises dans une plage spécifiée. Par exemple, la valeur de hh, le composant hours, doit être comprise entre 0 et 23. Pour cette raison, passer « 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 hours, il est interprété comme le composant Days.
Les composants de s
doivent collectivement spécifier 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 à s
l’aide de chacun des formats spécifiques à la culture pour la culture actuelle.
Remarques aux appelants
lorsqu’un composant d’intervalle de temps dans la chaîne à analyser contient plus de sept chiffres, les opérations d’analyse dans le .NET Framework 3,5 et les versions antérieures peuvent se comporter différemment des opérations d’analyse dans le .NET Framework 4 et versions ultérieures. dans certains cas, l’analyse des opérations qui réussissent dans le .NET Framework 3,5 et les versions antérieures peut échouer et lever une OverflowException dans le .NET Framework 4 et versions ultérieures. dans d’autres cas, les opérations d’analyse qui lèvent une FormatException dans le .NET Framework 3,5 et les versions antérieures peuvent échouer et lever une OverflowException dans le .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
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
S’applique à
Parse(ReadOnlySpan<Char>, IFormatProvider)
Convertit la représentation sous forme d’étendue d'un intervalle de temps dans son équivalent TimeSpan à 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 représentant 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
.
S’applique à
Parse(String, IFormatProvider)
Convertit la représentation sous forme de chaîne d'un intervalle de temps dans son équivalent TimeSpan à 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 (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
.
Exceptions
input
a la valeur null
.
input
a un format non valide.
input
représente un nombre qui est inférieur à MinValue ou supérieur à MaxValue.
- ou -
Au moins un des composants des jours, heures, minutes ou secondes dans
input
est en dehors de sa plage valide.
Exemples
L’exemple suivant définit un tableau d' CultureInfo objets 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 illustre 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 Example
{
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
Imports System.Globalization
Imports System.Threading
Module Example
Public Sub Main()
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
End Sub
End Module
' 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
Le input
paramètre contient une spécification d’intervalle de temps au format suivant :
[WS] [-] { d | [d.] hh:mm[ :SS[.FF]]} [WS]
Les éléments entre crochets ([et]) sont facultatifs. une sélection de la liste d’alternatives 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, entre 0 et 10675199. |
. | Symbole dépendante de la culture qui sépare les jours des heures. La valeur par défaut est un point ("."). |
hh | Heures, entre 0 et 23. |
: | Symbole de séparateur d’heure dépendante de la culture. |
mm | Minutes, entre 0 et 59. |
ss | Secondes facultatives, entre 0 et 59. |
. | Symbole dépendante de la culture qui sépare les secondes des fractions de seconde. La valeur par défaut est un point ("."). |
FF | Fractions de seconde facultatives, composées de un à sept chiffres décimaux. |
Si l' input
argument n’est pas une valeur de jour uniquement, il doit inclure un composant « heures » et « minutes »; les autres composants sont facultatifs. S’ils sont présents, les valeurs de chaque composant de temps doivent être comprises dans une plage spécifiée. Par exemple, la valeur de hh, le composant hours, doit être comprise entre 0 et 23. Pour cette raison, passer « 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 hours, il est interprété comme le composant Days.
Les composants de input
doivent collectivement spécifier 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 à input
l’aide de chacun des formats spécifiques à la culture pour la culture spécifiée par formatProvider
.
Le formatProvider
paramètre 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 :
CultureInfoObjet qui représente la culture dont les conventions de mise en forme doivent être reflétées dans la chaîne retournée. L' DateTimeFormatInfo objet retourné par la CultureInfo.DateTimeFormat propriété définit la mise en forme de la chaîne retournée.
DateTimeFormatInfoObjet qui définit la mise en forme de la chaîne retournée.
Objet personnalisé qui implémente l' IFormatProvider interface. Sa IFormatProvider.GetFormat méthode retourne un DateTimeFormatInfo objet qui fournit des informations de mise en forme.
Si formatProvider
est null
, l' DateTimeFormatInfo objet associé à la culture actuelle est utilisé.
Remarques aux appelants
lorsqu’un composant d’intervalle de temps dans la chaîne à analyser contient plus de sept chiffres, les opérations d’analyse dans le .NET Framework 3,5 et les versions antérieures peuvent se comporter différemment des opérations d’analyse dans le .NET Framework 4 et versions ultérieures. dans certains cas, l’analyse des opérations qui réussissent dans le .NET Framework 3,5 et les versions antérieures peut échouer et lever une OverflowException dans le .NET Framework 4 et versions ultérieures. dans d’autres cas, les opérations d’analyse qui lèvent une FormatException dans le .NET Framework 3,5 et les versions antérieures peuvent échouer et lever une OverflowException dans le .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
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