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 DateTimeOffset.TryParseExact (String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset)

 

Converte una determinata rappresentazione di stringa di una data e di un'ora nell'oggetto DateTimeOffset 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 a uno dei formati specificati.

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

public static bool TryParseExact(
	string input,
	string[] formats,
	IFormatProvider formatProvider,
	DateTimeStyles styles,
	out DateTimeOffset result
)

Parametri

input
Type: System.String

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

formats
Type: System.String[]

Matrice che definisce i formati previsti di input.

formatProvider
Type: System.IFormatProvider

Oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura relativamente a input.

styles
Type: System.Globalization.DateTimeStyles

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

result
Type: System.DateTimeOffset

Quando questo metodo viene restituito, contiene l'oggetto DateTimeOffset equivalente alla data e all'ora di input se la conversione ha esito positivo oppure MinValue, in caso contrario. La conversione non riesce se input non contiene una rappresentazione di data e ora in formato di stringa valida nel formato previsto oppure non contiene il formato di data e ora previsto definito da format oppure se formats è null. Questo parametro viene passato non inizializzato.

Valore restituito

Type: System.Boolean

true se il parametro input è stato convertito correttamente; in caso contrario, false.

Exception Condition
ArgumentException

styles include un valore DateTimeStyles non definito.

-oppure-

DateTimeStyles.NoCurrentDateDefault non è supportato.

-oppure-

styles include valori DateTimeStyles che si escludono a vicenda.

Il TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) metodo analizza la rappresentazione di stringa di una data che corrisponde a uno dei modelli assegnati al formats matrice. Se il input stringa non corrisponde a nessuno di questi modelli con le eventuali variazioni definite per il styles si verifica un errore di parametro, l'operazione di analisi e il metodo restituisce false. Oltre a confrontare input più stringhe che contengono identificatori di formato, si comporta in modo identico a questo overload di DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) (metodo).

Il formats parametro è una matrice di stringa i cui elementi contengono un identificatore di formato standard singolo o uno o più identificatori di formato personalizzati che definiscono il modello di possibili input. Per ulteriori informazioni sui codici di formattazione validi, vedere Stringhe di formato di data e ora standard e Stringhe di formato di data e ora personalizzato. Se l'elemento corrispondente nel formats include il z, zz, o zzz identificatori di formato personalizzati per indicare che deve essere presente in un offset input, tale offset deve includere un segno negativo o positivo. Se manca il segno, l'operazione di analisi ha esito negativo e il metodo restituisce false.

System_CAPS_importantImportante

Utilizzo di formats parametro di questo overload per specificare più formati può aiutare a ridurre la possibilità di accedere molti utenti si durante l'immissione di date e ore. In particolare, la possibilità di definire più modelli di input consente a un'applicazione gestire le rappresentazioni di data e ora che possono includere o non dispongono di zeri iniziali in mesi, giorni, ore, minuti e secondi. Nell'esempio viene illustrata una situazione di questo oggetto.

Se l'elemento corrispondente nel formats richiede che input contenga una data ma non un'ora, il valore risultante DateTimeOffset oggetto viene assegnato a mezzanotte (0: 00:00). Se l'elemento corrispondente nel formats richiede che l'input contenga un'ora ma non una data, il valore risultante DateTimeOffset oggetto viene assegnato la data corrente nel sistema locale. Se l'elemento corrispondente nel formats non richiede che input contenga un offset, l'offset del valore risultante DateTimeOffset oggetto dipende dal valore del styles parametro. Se styles include AssumeLocal, l'offset del fuso orario locale è assegnata la DateTimeOffset oggetto. Se styles include AssumeUniversal, offset Coordinated Universal Time (UTC), o + 00:00, viene assegnato al DateTimeOffset oggetto. Se viene specificato nessuno dei due valori, viene utilizzato l'offset del fuso orario locale.

La data e simboli di tempo e le stringhe utilizzate in input sono definiti dal formatProvider parametro. Lo stesso vale per il modello del preciso input se l'elemento corrispondente di formats è una stringa dell'identificatore di formato standard. Il formatProvider parametro può essere uno dei seguenti:

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

Il styles parametro definisce se gli spazi vuoti nella stringa di input, indica la modalità di analisi delle stringhe senza un componente di offset esplicito e supporta la conversione UTC come parte dell'operazione di analisi. Tutti i membri del DateTimeStyles enumerazione sono supportati, ad eccezione NoCurrentDateDefault. Nella tabella seguente elenca gli effetti di ciascun membro supportato.

Membro DateTimeStyles

Comportamento

AdjustToUniversal

Analizza input e, se necessario, lo converte in formato UTC. È equivalente all'analisi di una stringa e quindi la chiamata di DateTimeOffset.ToUniversalTime metodo dell'oggetto restituito DateTimeOffset oggetto.

AssumeLocal

Se l'elemento corrispondente nel formats non richiede che input contengono un valore di offset, restituito DateTimeOffset oggetto è assegnato l'offset del fuso orario locale. Rappresenta il valore predefinito.

AssumeUniversal

Se l'elemento corrispondente nel formats non richiede che input contengono un valore di offset, restituito DateTimeOffset oggetto viene assegnato l'offset UTC (+ 00:00).

AllowInnerWhite

Consente di input da includere uno spazio vuoto interno non specificato per gli elementi in formats. Lo spazio vuoto aggiuntivo può essere visualizzato tra i componenti di data e ora e all'interno di singoli componenti (tranne l'offset) e viene ignorato durante l'analisi della stringa.

AllowLeadingWhite

Consente di input per includere gli spazi non specificati dagli elementi iniziali formats. Che vengono ignorati durante l'analisi della stringa.

AllowTrailingWhite

Consente di input includere degli spazi finali non specificati dagli elementi di formats. Che vengono ignorati durante l'analisi della stringa.

AllowWhiteSpaces

Consente di input per includere gli spazi iniziali, finali e interni non specificati dagli elementi di formats. Tutti i caratteri spazi vuoti aggiuntivi non è specificati nell'elemento corrispondente in formats vengono ignorati durante l'analisi della stringa.

None

Indica che lo spazio vuoto aggiuntivo non è consentito in input. Lo spazio vuoto deve essere presente esattamente come specificato in un particolare elemento formats affinché si verifichi una corrispondenza ha esito positivo. Comportamento predefinito.

RoundtripKind

Non ha effetto poiché il DateTimeOffset struttura non include un Kind proprietà.

Note per i chiamanti:

Nel .NET Framework 4, TryParseExact restituisce false 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.

Nell'esempio seguente definisce più formati di input per la rappresentazione di stringa di una data e ora e valore di offset e quindi passa la stringa immessa dall'utente per il TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) metodo.

TextReader conIn = Console.In;
TextWriter conOut = Console.Out;
int tries = 0;
string input = String.Empty;

string[] formats = new string[] {"M/dd/yyyy HH:m zzz", "MM/dd/yyyy HH:m zzz", 
                                 "M/d/yyyy HH:m zzz", "MM/d/yyyy HH:m zzz", 
                                 "M/dd/yy HH:m zzz", "MM/dd/yy HH:m zzz", 
                                 "M/d/yy HH:m zzz", "MM/d/yy HH:m zzz",                                 
                                 "M/dd/yyyy H:m zzz", "MM/dd/yyyy H:m zzz", 
                                 "M/d/yyyy H:m zzz", "MM/d/yyyy H:m zzz", 
                                 "M/dd/yy H:m zzz", "MM/dd/yy H:m zzz", 
                                 "M/d/yy H:m zzz", "MM/d/yy H:m zzz",                               
                                 "M/dd/yyyy HH:mm zzz", "MM/dd/yyyy HH:mm zzz", 
                                 "M/d/yyyy HH:mm zzz", "MM/d/yyyy HH:mm zzz", 
                                 "M/dd/yy HH:mm zzz", "MM/dd/yy HH:mm zzz", 
                                 "M/d/yy HH:mm zzz", "MM/d/yy HH:mm zzz",                                 
                                 "M/dd/yyyy H:mm zzz", "MM/dd/yyyy H:mm zzz", 
                                 "M/d/yyyy H:mm zzz", "MM/d/yyyy H:mm zzz", 
                                 "M/dd/yy H:mm zzz", "MM/dd/yy H:mm zzz", 
                                 "M/d/yy H:mm zzz", "MM/d/yy H:mm zzz"};   
IFormatProvider provider = CultureInfo.InvariantCulture.DateTimeFormat;
DateTimeOffset result;

do {
   conOut.WriteLine("Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),");
   conOut.Write("Then press Enter: ");
   input = conIn.ReadLine();
   conOut.WriteLine(); 
   if (DateTimeOffset.TryParseExact(input, formats, provider, 
                                   DateTimeStyles.AllowWhiteSpaces, 
                                   out result))
   {                                          
      break;
   }
   else
   {  
      Console.WriteLine("Unable to parse {0}.", input);      
      tries++;
   }
} while (tries < 3);
if (tries >= 3)
   Console.WriteLine("Exiting application without parsing {0}", input);
else
   Console.WriteLine("{0} was converted to {1}", input, result.ToString());                                                     
// Some successful sample interactions with the user might appear as follows:
//    Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
//    Then press Enter: 12/08/2007 6:54 -6:00
//    
//    12/08/2007 6:54 -6:00 was converted to 12/8/2007 6:54:00 AM -06:00         
//    
//    Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
//    Then press Enter: 12/8/2007 06:54 -06:00
//    
//    12/8/2007 06:54 -06:00 was converted to 12/8/2007 6:54:00 AM -06:00
//    
//    Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
//    Then press Enter: 12/5/07 6:54 -6:00
//    
//    12/5/07 6:54 -6:00 was converted to 12/5/2007 6:54:00 AM -06:00 

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 2.0
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: