TimeSpan.Parse Metodo

Definizione

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:

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 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.

Si applica a