Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo DateTime.ParseExact (String, String[], IFormatProvider, DateTimeStyles)

 

Data di pubblicazione: ottobre 2016

Converte una determinata rappresentazione di stringa di una data e di un'ora nell'oggetto DateTime equivalente usando la matrice di formati, le informazioni sul formato specifiche delle impostazioni cultura e lo stile specificati. Il formato della rappresentazione di stringa deve corrispondere esattamente ad almeno uno dei formati specificati; in caso contrario, verrà generata un'eccezione.

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

public static DateTime ParseExact(
	string s,
	string[] formats,
	IFormatProvider provider,
	DateTimeStyles style
)

Parametri

s
Type: System.String

Stringa che contiene una data e un'ora da convertire.

formats
Type: System.String[]

Matrice di formati consentiti di s. Per altre informazioni, vedere la sezione Osservazioni.

provider
Type: System.IFormatProvider

Oggetto che fornisce informazioni sul formato di s specifiche delle impostazioni cultura.

style
Type: System.Globalization.DateTimeStyles

Combinazione bit per bit di valori di enumerazione che indica il formato consentito di s. Un valore tipico da specificare è None.

Valore restituito

Type: System.DateTime

Oggetto equivalente alla data e all'ora contenute in s, come specificato da formats, provider e style.

Exception Condition
ArgumentNullException

s o formats è null.

FormatException

Il parametro s è una stringa vuota.

-oppure-

un elemento di formats è una stringa vuota.

-oppure-

s non contiene data e ora che corrispondano a elementi di formats.

-oppure-

Il componente relativo alle ore e l'identificatore di AM/PM in s non concordano.

ArgumentException

style contiene una combinazione non valida di valori di DateTimeStyles. Ad esempio, sia AssumeLocal che AssumeUniversal.

Il DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) metodo analizza la rappresentazione di stringa di una data che corrisponde a uno dei modelli assegnati al formats parametro. Se la stringa s non corrisponde a nessuno di questi modelli con le eventuali variazioni definite dal styles parametro, il metodo genera un FormatException. Oltre a confrontare s per più modelli di formattazione, anziché a un singolo modello di formattazione, questo overload si comporta in modo identico al DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) metodo.

Il s parametro contiene la data e l'ora da analizzare. Se il s parametro contiene solo una volta e non viene utilizzata la data corrente a meno che il style parametro include il DateTimeStyles.NoCurrentDateDefault flag, nel qual caso la data predefinita (DateTime.Date.MinValue) viene utilizzato. Se il s parametro non contiene solo una data l'ora e la mezzanotte (00: 00:00) viene utilizzato. Il style parametro determina inoltre se il s parametro può contenere iniziali, spazi vuoti interni o finali caratteri diversi da quelli consentiti da una delle stringhe di formato in formats.

Se s non contiene alcuna informazione di fuso orario, il Kind proprietà dell'oggetto restituito DateTime oggetto DateTimeKind.Unspecified. Questo comportamento può essere modificato utilizzando il DateTimeStyles.AssumeLocal flag, che restituisce un DateTime il cui valore Kind proprietà DateTimeKind.Local, oppure utilizzando il DateTimeStyles.AssumeUniversal e DateTimeStyles.AdjustToUniversal flag, che restituisce un DateTime il cui valore Kind proprietà è DateTimeKind.Utc. Se s contiene informazioni sul fuso orario, l'ora viene convertita nell'ora locale, se necessario e Kind proprietà dell'oggetto restituito DateTime oggetto è impostato su DateTimeKind.Local. Questo comportamento può essere modificato utilizzando il DateTimeStyles.RoundtripKind flag per non convertire Coordinated Universal Time (UTC) in un'ora locale e impostare il Kind proprietà DateTimeKind.Utc.

Il formats parametro contiene una matrice di modelli, uno dei quali s deve corrispondere esattamente se l'operazione di analisi abbia esito positivo. I criteri di formats parametro è costituito da uno o più identificatori di formato personalizzati il Stringhe di formato di data e ora personalizzato tabella o un identificatore di formato singolo standard, che identifica un criterio predefinito, dal Stringhe di formato di data e ora standard tabella.

Se non si utilizzano i separatori di data o ora in un modello di formato personalizzato, utilizzare le impostazioni cultura invarianti per il provider identificatore di formato di parametro e la forma più estesa di ogni personalizzata. Ad esempio, se si desidera specificare le ore nel criterio di ricerca, specificare la forma più estesa, "HH", anziché la forma più ristretta, "H".

Il styles parametro include uno o più membri del DateTimeStyles enumerazione che determinano se e in cui lo spazio vuoto non è definito da format possono essere visualizzati in s e che controllano il comportamento preciso dell'operazione di analisi. La tabella seguente descrive come ogni membro del DateTimeStyles enumerazione influisce sul funzionamento del ParseExact(String, String, IFormatProvider, DateTimeStyles) metodo.

Membro di DateTimeStyles

Descrizione

AdjustToUniversal

Analizza s e, se necessario, lo converte in formato UTC. Se s include una differenza di fuso orario, o se s non contiene alcuna informazione di fuso orario ma styles include il DateTimeStyles.AssumeLocal flag, il metodo analizza la stringa, chiama ToUniversalTime per convertire l'oggetto restituito DateTime valore UTC e imposta il Kind proprietà DateTimeKind.Utc. Se s rappresenta il formato UTC, o se s non contiene informazioni sul fuso orario ma styles include il DateTimeStyles.AssumeUniversal flag, il metodo analizza la stringa, non esegue alcuna conversione del fuso orario su restituito DateTime valore e imposta il Kind proprietà DateTimeKind.Utc. In tutti gli altri casi, il flag non ha effetto.

AllowInnerWhite

Specifica che lo spazio vuoto non è definito da format possono apparire tra qualsiasi data singolo elemento o di ora.

AllowLeadingWhite

Specifica che lo spazio vuoto non è definito da format possono essere visualizzati all'inizio di s.

AllowTrailingWhite

Specifica che lo spazio vuoto non è definito da format può apparire alla fine di s.

AllowWhiteSpaces

Specifica che s può contenere iniziali, interni e non è definiti per gli spazi vuoti finali format.

AssumeLocal

Specifica che se s non contiene informazioni sul fuso orario, si presuppone che rappresenti un'ora locale. A meno che il DateTimeStyles.AdjustToUniversal flag è presente, il Kind proprietà dell'oggetto restituito DateTime è impostato su DateTimeKind.Local.

AssumeUniversal

Specifica che se s non contiene informazioni sul fuso orario, si presuppone che rappresenti l'ora UTC. A meno che non la DateTimeStyles.AdjustToUniversal flag è presente, il metodo converte l'oggetto restituito DateTime valore rispetto all'ora UTC per l'ora locale e imposta il relativo Kind proprietà DateTimeKind.Local.

NoCurrentDateDefault

Se s contiene ora senza informazioni sulla data, la data del valore restituito è impostata su DateTime.MinValue.Date.

None

Il s parametro viene analizzato utilizzando i valori predefiniti. Non spazio vuoto diverso da quello presente in format è consentita. Se s non dispone di un componente di data, la data dell'oggetto restituito DateTime è impostato su 1/1/0001. Se s non contiene alcuna informazione di fuso orario, il Kind proprietà dell'oggetto restituito DateTime oggetto è impostato su DateTimeKind.Unspecified. Se informazioni sul fuso orario è presente in s, l'ora viene convertita nell'ora locale e Kind proprietà dell'oggetto restituito DateTime oggetto è impostato su DateTimeKind.Local.

RoundtripKind

Per le stringhe che contengono informazioni sul fuso orario, tenta di impedire la conversione in una data e ora con il relativo Kind proprietà impostata su DateTimeKind.Local. Questo flag principalmente impedisce la conversione dell'ora UTC in ora locale.

Simboli di ora e stringhe (ad esempio i nomi dei giorni della settimana in un determinato linguaggio) utilizzate particolare data e s sono definiti dal provider parametro, come il formato del precisa s se format è una stringa dell'identificatore di formato standard. Il provider parametro può essere uno dei seguenti:

Se provider è null, CultureInfo viene utilizzato l'oggetto corrispondente alle impostazioni cultura correnti.

Note per i chiamanti:

Nel .NET Framework 4, ParseExact metodo genera un FormatException se la stringa da analizzare contiene un componente di ora e un indicatore AM/PM non presenti nel contratto. Nel .NET Framework 3.5 e versioni precedenti, l'indicatore AM/PM viene ignorato.

L'esempio seguente usa il DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) metodo per garantire che una stringa in un numero di possibili formati può essere analizzata correttamente.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", 
                         "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", 
                         "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", 
                         "M/d/yyyy h:mm", "M/d/yyyy h:mm", 
                         "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm",
                         "MM/d/yyyy HH:mm:ss.ffffff" };
      string[] dateStrings = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", 
                              "5/1/2009 6:32:00", "05/01/2009 06:32", 
                              "05/01/2009 06:32:00 PM", "05/01/2009 06:32:00",
                              "08/28/2015 16:17:39.125", "08/28/2015 16:17:39.125000" };
      DateTime dateValue;

      foreach (string dateString in dateStrings)
      {
         try {
            dateValue = DateTime.ParseExact(dateString, formats, 
                                            new CultureInfo("en-US"), 
                                            DateTimeStyles.None);
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
         }
         catch (FormatException) {
            Console.WriteLine("Unable to convert '{0}' to a date.", dateString);
         }                                               
      }
   }
}
// The example displays the following output:
//       Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
//       Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
//       Unable to convert '08/28/2015 16:17:39.125' to a date.
//       Converted '08/28/2015 16:17:39.125000' to 8/28/2015 4:17:39 PM.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: