Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Metodo TimeSpan.ParseExact (String, String, IFormatProvider)

Converte la rappresentazione in forma di stringa di un intervallo di tempo nell'equivalente TimeSpan utilizzando le informazioni di formato specifiche delle impostazioni cultura specificate. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente a un formato specificato.

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)

public static TimeSpan ParseExact(
	string input,
	string format,
	IFormatProvider formatProvider
)

Parametri

input
Tipo: System.String
Stringa che specifica l'intervallo di tempo da convertire.
format
Tipo: System.String
Stringa di formato standard o personalizzata che definisce il formato richiesto di input.
formatProvider
Tipo: System.IFormatProvider
Oggetto che fornisce informazioni sulla formattazione specifiche delle impostazioni cultura.

Valore restituito

Tipo: System.TimeSpan
Intervallo di tempo che corrisponde a input, come specificato da format e formatProvider.

EccezioneCondizione
ArgumentNullException

input è null.

FormatException

input ha un formato non valido.

OverflowException

input rappresenta un numero minore di TimeSpan.MinValue o maggiore di TimeSpan.MaxValue.

In alternativa

Il valore di uno o più componenti relativi a giorni, ore, minuti o secondi in input non rientra nell'intervallo di validità.

Il metodo ParseExact(String, String, IFormatProvider) analizza la rappresentazione di stringa di un intervallo di tempo, che deve essere in uno dei formati definiti dal parametro format con l'eccezione che gli spazi vuoti iniziali e finali vengono ignorati. Poiché input deve adattarsi esattamente al formato di format, se un utente converte un input della stringa in un intervallo di tempo è necessario utilizzare sempre la gestione delle eccezioni. Se si preferisce non utilizzare la gestione delle eccezioni, è possibile chiamare in alternativa il metodo TryParseExact(String, String, IFormatProvider, TimeSpan).

Il parametro format è una stringa che contiene un unico identificatore di formato standard o più identificatori di formato personalizzati che definiscono il formato richiesto del parametro input. Per ulteriori informazioni sulle stringhe di formato valido, vedere Stringhe di formato TimeSpan standard e Stringhe di formato TimeSpan personalizzate.

Nota importanteImportante

Il metodo ParseExact utilizza solo le convenzioni delle impostazioni cultura specificate dal parametro formatProvider se la stringa di formato utilizzata per analizzare format è una stringa di formato TimeSpan standard il cui valore è "g" o "G." Le stringhe di formato standard "c", "t" e "T" utilizzano le convenzioni di formattazione della lingua inglese. Le stringhe di formato personalizzate definiscono il formato preciso della stringa di input e l'utilizzo caratteri letterali per separare i componenti di un intervallo di tempo.

Il parametro formatProvider è un'implementazione IFormatProvider che fornisce informazioni specifiche delle impostazioni cultura sul formato della stringa restituita format è una stringa di formato standard. Il parametro formatProvider può essere uno dei seguenti oggetti:

Se formatProvider è null, viene utilizzato l'oggetto DateTimeFormatInfo associato alle impostazioni cultura correnti.

Il seguente esempio utilizza il metodo ParseExact(String, String, IFormatProvider) per analizzare diverse rappresentazioni di stringhe di intervalli di tempo utilizzando diverse stringhe di formato e impostazioni cultura.


using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string intervalString, format;
      TimeSpan interval;
      CultureInfo culture;

      // Parse hour:minute value with "g" specifier current culture.
      intervalString = "17:14";
      format = "g";
      culture = CultureInfo.CurrentCulture;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, culture);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", 
                           intervalString, format);
      }                     
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      }      

      // Parse hour:minute:second value with "G" specifier.
      intervalString = "17:14:48";
      format = "G";
      culture = CultureInfo.InvariantCulture;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, culture);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }   
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 

      // Parse hours:minute.second value with "G" specifier 
      // and current (en-US) culture.     
      intervalString = "17:14:48.153";
      format = "G";
      culture = CultureInfo.CurrentCulture;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, culture);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 

      // Parse days:hours:minute.second value with "G" specifier 
      // and current (en-US) culture.     
      intervalString = "3:17:14:48.153";
      format = "G";
      culture = CultureInfo.CurrentCulture;
      try {
         interval = TimeSpan.ParseExact(intervalString, format, culture);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }   
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 

      // Parse days:hours:minute.second value with "G" specifier 
      // and fr-FR culture.     
      intervalString = "3:17:14:48.153";
      format = "G";
      culture = new CultureInfo("fr-FR");
      try {
         interval = TimeSpan.ParseExact(intervalString, format, culture);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 

      // Parse days:hours:minute.second value with "G" specifier 
      // and fr-FR culture.     
      intervalString = "3:17:14:48,153";
      format = "G";
      try {
         interval = TimeSpan.ParseExact(intervalString, format, culture);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }   
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 

      // Parse a single number using the "c" standard format string. 
      intervalString = "12";
      format = "c";
      try {
         interval = TimeSpan.ParseExact(intervalString, format, null);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 

      // Parse a single number using the "%h" custom format string. 
      format = "%h";
      try {
         interval = TimeSpan.ParseExact(intervalString, format, null);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      } 

      // Parse a single number using the "%s" custom format string. 
      format = "%s";
      try {
         interval = TimeSpan.ParseExact(intervalString, format, null);
         Console.WriteLine("'{0}' --> {1}", intervalString, interval);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}': Bad Format for '{1}'", intervalString, format);
      }
      catch (OverflowException) {
         Console.WriteLine("'{0}': Overflow", intervalString);
      }
   }
}
// The example displays the following output:
//       '17:14' --> 17:14:00
//       '17:14:48': Bad Format for 'G'
//       '17:14:48.153': Bad Format for 'G'
//       '3:17:14:48.153' --> 3.17:14:48.1530000
//       '3:17:14:48.153': Bad Format for 'G'
//       '3:17:14:48,153' --> 3.17:14:48.1530000
//       '12' --> 12.00:00:00
//       '12' --> 12:00:00
//       '12' --> 00:00:12


.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Supportato in: 4

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft