Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.
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 | Descrizione |
|---|---|
| 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. |
| ß | 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.
Note per i chiamanti
Quando un componente intervallo di tempo nella stringa da analizzare contiene più di sette cifre, le operazioni di analisi in .NET Framework 3.5 e versioni precedenti possono comportarsi in modo diverso rispetto alle operazioni di analisi in .NET Framework 4 e versioni successive. In alcuni casi, le operazioni di analisi riuscite in .NET Framework 3.5 e versioni precedenti potrebbero non riuscire e generare un'eccezione OverflowException in .NET Framework 4 e versioni successive. In altri casi, le operazioni di analisi che generano un'eccezione FormatException in .NET Framework 3.5 e versioni precedenti potrebbero non riuscire e generare un'eccezione OverflowException in .NET Framework 4 e versioni successive. Nell'esempio seguente vengono illustrati entrambi gli scenari.
string[] values = { "000000006", "12.12:12:12.12345678" };
foreach (string value in values)
{
try {
TimeSpan interval = TimeSpan.Parse(value);
Console.WriteLine($"{value} --> {interval}");
}
catch (FormatException) {
Console.WriteLine($"{value}: Bad Format");
}
catch (OverflowException) {
Console.WriteLine($"{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
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