TimeSpan.Parse Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Converte la rappresentazione di stringa di un intervallo di tempo nell'equivalente TimeSpan .
Overload
| Nome | Descrizione |
|---|---|
| Parse(ReadOnlySpan<Char>, IFormatProvider) |
Converte la rappresentazione di intervallo di un intervallo di tempo nell'equivalente TimeSpan utilizzando le informazioni sul formato specifiche delle impostazioni cultura specificate. |
| Parse(String, IFormatProvider) |
Converte la rappresentazione di stringa di un intervallo di tempo nell'equivalente TimeSpan utilizzando le informazioni sul formato specifiche delle impostazioni cultura specificate. |
| Parse(String) |
Converte la rappresentazione di stringa di un intervallo di tempo nell'equivalente TimeSpan . |
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Origine:
- TimeSpan.cs
- Origine:
- TimeSpan.cs
- Origine:
- TimeSpan.cs
- Origine:
- TimeSpan.cs
- Origine:
- TimeSpan.cs
Converte la rappresentazione di intervallo di un intervallo di tempo nell'equivalente TimeSpan utilizzando le informazioni sul formato specifiche delle impostazioni cultura specificate.
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
Parametri
- input
- ReadOnlySpan<Char>
Intervallo contenente i caratteri che rappresentano l'intervallo di tempo da convertire.
- formatProvider
- IFormatProvider
Oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura.
Valori restituiti
Intervallo di tempo che corrisponde a input, come specificato da formatProvider.
Implementazioni
Si applica a
Parse(String, IFormatProvider)
- Origine:
- TimeSpan.cs
- Origine:
- TimeSpan.cs
- Origine:
- TimeSpan.cs
- Origine:
- TimeSpan.cs
- Origine:
- TimeSpan.cs
Converte la rappresentazione di stringa di un intervallo di tempo nell'equivalente TimeSpan utilizzando le informazioni sul formato specifiche delle impostazioni cultura specificate.
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
Parametri
- input
- String
Stringa che specifica l'intervallo di tempo da convertire.
- formatProvider
- IFormatProvider
Oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura.
Valori restituiti
Intervallo di tempo che corrisponde a input, come specificato da formatProvider.
Implementazioni
Eccezioni
input è null.
input ha un formato non valido.
input rappresenta un numero minore di TimeSpan.MinValue o maggiore di TimeSpan.MaxValue.
oppure
Almeno uno dei componenti giorni, ore, minuti o secondi in non rientra nell'intervallo input valido.
Esempio
L'esempio seguente definisce una matrice di CultureInfo oggetti e usa ogni oggetto nelle chiamate al Parse(String, IFormatProvider) metodo per analizzare gli elementi in una matrice di stringhe. Nell'esempio viene illustrato come le convenzioni di impostazioni cultura specifiche influenzano l'operazione di formattazione.
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
Commenti
Questo metodo tenta di analizzare input usando ognuno dei formati specifici delle impostazioni cultura per le impostazioni cultura specificate da formatProvider.
Il parametro formatProvider è un'implementazione IFormatProvider che fornisce informazioni specifiche delle impostazioni culturali del formato della stringa restituita. Il parametro formatProvider può essere uno dei seguenti:
- Oggetto CultureInfo che rappresenta le impostazioni culturali di cui le convenzioni di formattazione devono riflettersi nella stringa restituita. L'oggetto DateTimeFormatInfo restituito dalla proprietà CultureInfo.DateTimeFormat definisce la formattazione della stringa restituita.
- Oggetto DateTimeFormatInfo che definisce la formattazione della stringa restituita.
- Oggetto personalizzato che implementa l'interfaccia IFormatProvider. Il metodo IFormatProvider.GetFormat restituisce un oggetto DateTimeFormatInfo che fornisce informazioni di formattazione.
Se formatProvider è null, viene utilizzato l'oggetto DateTimeFormatInfo associato alla cultura attuale.
La stringa di input per i Parse metodi contiene una specifica dell'intervallo di tempo nel formato:
[ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]
Gli elementi tra parentesi quadre ([ e ]) sono facoltativi. È necessaria una selezione dall'elenco di alternative racchiuse tra parentesi graffe ({ e }) e separate da barre verticali (|). La tabella seguente descrive i singoli elementi.
| Elemento | Description |
|---|---|
| Ws | Spazio vuoto facoltativo. |
| - | Un segno meno opzionale, che indica un TimeSpannegativo. |
| d | Giorni, compresi tra 0 e 10675199. |
| . | Un simbolo sensibile alla cultura che separa i giorni dalle ore. Il formato invariante usa un carattere punto ("."). |
| Hh | Ore, comprese tra 0 e 23. |
| : | Simbolo separatore temporale sensibile alla cultura. Il formato invariante usa il carattere due punti (":"). |
| millimetro | Minuti, compresi tra 0 e 59. |
| ss | Secondi facoltativi, compresi tra 0 e 59. |
| . | Simbolo sensibile al contesto culturale che separa i secondi dalle frazioni di secondo. Il formato invariante usa un carattere punto ("."). |
| Ff | Secondi frazionari facoltativi, costituiti da una a sette cifre decimali. |
Se la stringa di input non è solo un valore di giorno, deve includere un componente ore e minuti; altri componenti sono facoltativi. Se sono presenti, i valori di ogni componente temporale devono rientrare in un intervallo specificato. Ad esempio, il valore di hh, il componente hours, deve essere compreso tra 0 e 23. Per questo motivo, il passaggio di "23:00:00" al Parse metodo restituisce un intervallo di tempo di 23 ore. D'altra parte, passando "24:00:00" restituisce un intervallo di tempo di 24 giorni. Poiché "24" non rientra nell'intervallo del componente ore, viene interpretato come componente giorni.
I componenti della stringa di input devono specificare collettivamente un intervallo di tempo maggiore o uguale a TimeSpan.MinValue e minore o uguale a TimeSpan.MaxValue.
Il Parse(String) metodo tenta di analizzare la stringa di input usando ognuno dei formati specifici della cultura per la cultura corrente.
Si applica a
Parse(String)
- Origine:
- TimeSpan.cs
- Origine:
- TimeSpan.cs
- Origine:
- TimeSpan.cs
- Origine:
- TimeSpan.cs
- Origine:
- TimeSpan.cs
Converte la rappresentazione di stringa di un intervallo di tempo nell'equivalente TimeSpan .
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
Parametri
- s
- String
Stringa che specifica l'intervallo di tempo da convertire.
Valori restituiti
Intervallo di tempo che corrisponde a s.
Eccezioni
s è null.
s ha un formato non valido.
s rappresenta un numero minore di TimeSpan.MinValue o maggiore di TimeSpan.MaxValue.
oppure
Almeno uno dei componenti giorni, ore, minuti o secondi non rientra nell'intervallo valido.
Esempio
Nell'esempio seguente viene utilizzato il Parse metodo per convertire ogni elemento in una matrice di stringhe in un TimeSpan valore . Modifica le impostazioni cultura correnti del sistema in croato - Croazia ("hr-HR") e inglese - Stati Uniti ("en-US") per illustrare come le impostazioni cultura di sistema correnti influiscono sull'operazione di analisi.
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
Commenti
La stringa di input per i Parse metodi contiene una specifica dell'intervallo di tempo nel formato:
[ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws]
Gli elementi tra parentesi quadre ([ e ]) sono facoltativi. È necessaria una selezione dall'elenco di alternative racchiuse tra parentesi graffe ({ e }) e separate da barre verticali (|). La tabella seguente descrive i singoli elementi.
| Elemento | Description |
|---|---|
| Ws | Spazio vuoto facoltativo. |
| - | Un segno meno opzionale, che indica un TimeSpannegativo. |
| d | Giorni, compresi tra 0 e 10675199. |
| . | Un simbolo sensibile alla cultura che separa i giorni dalle ore. Il formato invariante usa un carattere punto ("."). |
| Hh | Ore, comprese tra 0 e 23. |
| : | Simbolo separatore temporale sensibile alla cultura. Il formato invariante usa il carattere due punti (":"). |
| millimetro | Minuti, compresi tra 0 e 59. |
| ss | Secondi facoltativi, compresi tra 0 e 59. |
| . | Simbolo sensibile al contesto culturale che separa i secondi dalle frazioni di secondo. Il formato invariante usa un carattere punto ("."). |
| Ff | Secondi frazionari facoltativi, costituiti da una a sette cifre decimali. |
Se la stringa di input non è solo un valore di giorno, deve includere un componente ore e minuti; altri componenti sono facoltativi. Se sono presenti, i valori di ogni componente temporale devono rientrare in un intervallo specificato. Ad esempio, il valore di hh, il componente hours, deve essere compreso tra 0 e 23. Per questo motivo, il passaggio di "23:00:00" al Parse metodo restituisce un intervallo di tempo di 23 ore. D'altra parte, passando "24:00:00" restituisce un intervallo di tempo di 24 giorni. Poiché "24" non rientra nell'intervallo del componente ore, viene interpretato come componente giorni.
I componenti della stringa di input devono specificare collettivamente un intervallo di tempo maggiore o uguale a TimeSpan.MinValue e minore o uguale a TimeSpan.MaxValue.
Il Parse(String) metodo tenta di analizzare la stringa di input usando ognuno dei formati specifici della cultura per la cultura corrente.