DateTimeOffset.TryParseExact Metodo

Definizione

Converte una determinata rappresentazione di stringa di una data e di un'ora nell'equivalente DateTimeOffset.Converts the specified string representation of a date and time to its DateTimeOffset equivalent. Il formato della rappresentazione di stringa deve corrispondere esattamente a un formato specificato.The format of the string representation must match a specified format exactly.

Overload

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.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified array of formats, culture-specific format information, and style. Il formato della rappresentazione di stringa deve corrispondere esattamente a uno dei formati specificati.The format of the string representation must match one of the specified formats exactly.

TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTimeOffset)

Converte una determinata rappresentazione di una data e di un'ora in un intervallo di caratteri nell'oggetto DateTimeOffset equivalente usando il formato, le informazioni sul formato specifiche delle impostazioni cultura e lo stile specificati.Converts the representation of a date and time in a character span to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. Il formato della rappresentazione di data e ora deve corrispondere esattamente al formato specificato.The format of the date and time representation must match the specified format exactly.

TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTimeOffset)

Converte una rappresentazione di una data e ora in un intervallo di caratteri nell'elemento DateTimeOffset equivalente usando i formati, le informazioni sul formato delle impostazioni cultura e lo stile specificati.Converts the representation of a date and time in a character span to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. Il formato della rappresentazione di data e ora deve corrispondere esattamente a uno dei formati specificati.The format of the date and time representation must match one of the specified formats exactly.

TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset)

Converte una determinata rappresentazione di stringa di una data e di un'ora nell'oggetto DateTimeOffset equivalente usando il formato, le informazioni sul formato specifiche delle impostazioni cultura e lo stile specificati.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. Il formato della rappresentazione di stringa deve corrispondere esattamente al formato specificato.The format of the string representation must match the specified format exactly.

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.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified array of formats, culture-specific format information, and style. Il formato della rappresentazione di stringa deve corrispondere esattamente a uno dei formati specificati.The format of the string representation must match one of the specified formats exactly.

public:
 static bool TryParseExact(System::String ^ input, cli::array <System::String ^> ^ formats, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTimeOffset % result);
public static bool TryParseExact (string input, string[] formats, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
static member TryParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTimeOffset -> bool
Public Shared Function TryParseExact (input As String, formats As String(), formatProvider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTimeOffset) As Boolean

Parametri

input
String

Stringa che contiene una data e un'ora da convertire.A string that contains a date and time to convert.

formats
String[]

Matrice che definisce i formati previsti di input.An array that defines the expected formats of input.

formatProvider
IFormatProvider

Oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura relativamente a input.An object that supplies culture-specific formatting information about input.

styles
DateTimeStyles

Combinazione bit per bit di valori di enumerazione che indica il formato consentito di input.A bitwise combination of enumeration values that indicates the permitted format of input. Un valore tipico da specificare è None.A typical value to specify is None.

result
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.When the method returns, contains the DateTimeOffset equivalent to the date and time of input, if the conversion succeeded, or MinValue, if the conversion failed. 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.The conversion fails if the input does not contain a valid string representation of a date and time, or does not contain the date and time in the expected format defined by format, or if formats is null. Questo parametro viene passato non inizializzato.This parameter is passed uninitialized.

Restituisce

true se il parametro input è stato convertito correttamente; in caso contrario, false.true if the input parameter is successfully converted; otherwise, false.

Eccezioni

styles include un valore DateTimeStyles non definito.styles includes an undefined DateTimeStyles value.

-oppure--or- NoCurrentDateDefault non è supportato.NoCurrentDateDefault is not supported.

-oppure--or- styles include valori DateTimeStyles che si escludono a vicenda.styles includes mutually exclusive DateTimeStyles values.

Esempi

Nell'esempio seguente vengono definiti più formati di input per la rappresentazione di stringa di un valore di data e ora e di offset, quindi la stringa immessa dall'utente viene passata al metodo TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset).The following example defines multiple input formats for the string representation of a date and time and offset value, and then passes the string that is entered by the user to the TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) method.

 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 
 Dim conIn As TextReader = Console.In
 Dim conOut As TextWriter = Console.Out
 Dim tries As Integer = 0
 Dim input As String = String.Empty
 Dim formats() As 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"}   
 Dim provider As IFormatProvider = CultureInfo.InvariantCulture.DateTimeFormat
 Dim result As DateTimeOffset

 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, _
                                    result) Then
       Exit Do
    Else
       Console.WriteLine("Unable to parse {0}.", input)      
       tries += 1
    End If
 Loop While tries < 3
 If tries >= 3 Then
    Console.WriteLine("Exiting application without parsing {0}", input)
 Else
    Console.WriteLine("{0} was converted to {1}", input, result.ToString())                                                     
 End If 
 ' 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 

Commenti

Il metodo TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) analizza la rappresentazione di stringa di una data corrispondente a uno dei modelli assegnati alla matrice di formats.The TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) method parses the string representation of a date that matches any one of the patterns assigned to the formats array. Se la stringa di input non corrisponde a uno di questi modelli con le varianti definite dal parametro styles, l'operazione di analisi ha esito negativo e il metodo restituisce false.If the input string does not match any one of these patterns with any variations defined by the styles parameter, the parsing operation fails and the method returns false. Oltre a confrontare input a più stringhe che contengono identificatori di formato, questo overload si comporta in modo identico al metodo DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles).Aside from comparing input to multiple strings that contain format specifiers, this overload behaves identically to the DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) method.

Il formats parametro è una matrice di stringhe i cui elementi contengono un singolo identificatore di formato standard o uno o più identificatori di formato personalizzati che definiscono il modello possibile di input.The formats parameter is a string array whose elements contain either a single standard format specifier or one or more custom format specifiers that define the possible pattern of input. Per informazioni dettagliate sui codici di formattazione validi, vedere stringhe di formato di data e ora standard e stringhe di formato di data e ora personalizzate.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Se l'elemento corrispondente in formats include gli identificatori di formato personalizzati z, zzo zzz per indicare che deve essere presente un offset nella input, tale offset deve includere un segno negativo o un segno positivo.If the matched element in formats includes the z, zz, or zzz custom format specifiers to indicate that an offset must be present in input, that offset must include either a negative sign or a positive sign. Se il segno non è presente, l'operazione di analisi ha esito negativo e il metodo restituisce false.If the sign is missing, the parse operation fails and the method returns false.

Importante

L'uso del parametro formats di questo overload per specificare più formati può aiutare a ridurre la frustrazione di molti utenti durante l'immissione di date e ore.Using the formats parameter of this overload to specify multiple formats can help reduce the frustration many users experience when they enter dates and times. In particolare, la possibilità di definire più modelli di input consente a un'applicazione di gestire le rappresentazioni di data e ora che possono includere o mancano zeri iniziali in mesi, giorni, ore, minuti e secondi.In particular, the ability to define multiple input patterns enables an application to handle date and time representations that can either include or lack leading zeros in months, days, hours, minutes, and seconds. Nell'esempio viene illustrata questa situazione.The example provides an illustration of this.

Se per l'elemento corrispondente in formats è necessario che input contengano una data, ma non un'ora, all'oggetto DateTimeOffset risultante viene assegnata un'ora della mezzanotte (0:00:00).If the matched element in formats requires that input contain a date but not a time, the resulting DateTimeOffset object is assigned a time of midnight (0:00:00). Se l'elemento corrispondente in formats richiede che l'input contenga un'ora ma non una data, all'oggetto DateTimeOffset risultante viene assegnata la data corrente nel sistema locale.If the matched element in formats requires that input contain a time but not a date, the resulting DateTimeOffset object is assigned the current date on the local system. Se l'elemento corrispondente in formats non richiede che input contengano un offset, l'offset dell'oggetto DateTimeOffset risultante dipende dal valore del parametro styles.If the matched element in formats does not require that input contain an offset, the offset of the resulting DateTimeOffset object depends on the value of the styles parameter. Se styles include AssumeLocal, l'offset del fuso orario locale viene assegnato all'oggetto DateTimeOffset.If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. Se styles include AssumeUniversal, l'offset UTC (Coordinated Universal Time) o + 00:00 viene assegnato all'oggetto DateTimeOffset.If styles includes AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. Se non viene specificato alcun valore, viene utilizzato l'offset del fuso orario locale.If neither value is specified, the offset of the local time zone is used.

I simboli e le stringhe di data e ora specifici usati in input sono definiti dal parametro di formatProvider.The particular date and time symbols and strings used in input are defined by the formatProvider parameter. Lo stesso vale per il modello preciso di input se l'elemento corrispondente di formats è una stringa dell'identificatore di formato standard.The same is true for the precise pattern of input if the matching element of formats is a standard format specifier string. Il formatProvider parametro può essere uno dei seguenti:The formatProvider parameter can be either of the following:

Se formatprovider è null, viene utilizzato l'oggetto CultureInfo che corrisponde alle impostazioni cultura correnti.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

Il parametro styles definisce se è consentito lo spazio vuoto nella stringa di input, indica il modo in cui vengono analizzate le stringhe senza un componente di offset esplicito e supporta la conversione UTC come parte dell'operazione di analisi.The styles parameter defines whether white space is permitted in the input string, indicates how strings without an explicit offset component are parsed, and supports UTC conversion as part of the parsing operation. Tutti i membri dell'enumerazione DateTimeStyles sono supportati eccetto NoCurrentDateDefault.All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. Nella tabella seguente sono elencati gli effetti di ogni membro supportato.The following table lists the effect of each supported member.

MembroDateTimeStylesDateTimeStyles member ComportamentoBehavior
AdjustToUniversal Analizza input e, se necessario, lo converte in formato UTC.Parses input and, if necessary, converts it to UTC. Equivale all'analisi di una stringa, quindi alla chiamata del metodo di DateTimeOffset.ToUniversalTime dell'oggetto DateTimeOffset restituito.It is equivalent to parsing a string, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal Se l'elemento corrispondente in formats non richiede che input contengano un valore di offset, all'oggetto DateTimeOffset restituito viene assegnato l'offset del fuso orario locale.If the matched element in formats does not require that input contain an offset value, the returned DateTimeOffset object is given the offset of the local time zone. Questo è il valore predefinito.This is the default value.
AssumeUniversal Se l'elemento corrispondente in formats non richiede che input contengano un valore di offset, all'oggetto DateTimeOffset restituito viene assegnato l'offset UTC (+ 00:00).If the matched element in formats does not require that input contain an offset value, the returned DateTimeOffset object is given the UTC offset (+00:00).
AllowInnerWhite Consente input di includere spazi vuoti interni non specificati dagli elementi formats.Allows input to include inner white space not specified by the elements in formats. Gli spazi vuoti aggiuntivi possono essere visualizzati tra i componenti di data e ora e all'interno di singoli componenti (ad eccezione dell'offset) e vengono ignorati durante l'analisi della stringa.Extra white space can appear between date and time components and within individual components (except for the offset) and is ignored when parsing the string.
AllowLeadingWhite Consente input di includere gli spazi iniziali non specificati dagli elementi nel formats.Allows input to include leading spaces not specified by the elements in formats. Questi vengono ignorati durante l'analisi della stringa.These are ignored when parsing the string.
AllowTrailingWhite Consente input di includere gli spazi finali non specificati dagli elementi nel formats.Allows input to include trailing spaces not specified by the elements in formats. Questi vengono ignorati durante l'analisi della stringa.These are ignored when parsing the string.
AllowWhiteSpaces Consente input di includere spazi iniziali, finali e interni non specificati dagli elementi formats.Allows input to include leading, trailing, and inner spaces not specified by the elements in formats. Tutti gli spazi vuoti aggiuntivi non specificati nell'elemento corrispondente in formats vengono ignorati durante l'analisi della stringa.All extra white-space characters not specified in the matched element in formats are ignored when parsing the string.
None Indica che non è consentito lo spazio vuoto aggiuntivo in input.Indicates that additional white space is not permitted in input. Gli spazi vuoti devono essere visualizzati esattamente come specificato in un particolare elemento in formats per una corrispondenza corretta.White space must appear exactly as specified in a particular element in formats for a successful match to occur. Comportamento predefinito.This is the default behavior.
RoundtripKind Non ha alcun effetto perché la struttura DateTimeOffset non include una proprietà Kind.Has no effect because the DateTimeOffset structure does not include a Kind property.

Note per i chiamanti

Nel .NET Framework 4.NET Framework 4, il TryParseExact restituisce false se la stringa da analizzare contiene un componente hour e un designatore AM/PM che non sono concordati.In the .NET Framework 4.NET Framework 4, the TryParseExact returns false if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. Nell'.NET Framework 3.5.NET Framework 3.5 e nelle versioni precedenti, l'indicatore AM/PM viene ignorato.In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTimeOffset)

Converte una determinata rappresentazione di una data e di un'ora in un intervallo di caratteri nell'oggetto DateTimeOffset equivalente usando il formato, le informazioni sul formato specifiche delle impostazioni cultura e lo stile specificati.Converts the representation of a date and time in a character span to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. Il formato della rappresentazione di data e ora deve corrispondere esattamente al formato specificato.The format of the date and time representation must match the specified format exactly.

public:
 static bool TryParseExact(ReadOnlySpan<char> input, ReadOnlySpan<char> format, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTimeOffset % result);
public static bool TryParseExact (ReadOnlySpan<char> input, ReadOnlySpan<char> format, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
static member TryParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles * DateTimeOffset -> bool
Public Shared Function TryParseExact (input As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), formatProvider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTimeOffset) As Boolean

Parametri

input
ReadOnlySpan<Char>

Intervallo contenente i caratteri che rappresentano una data e ora da convertire.A span containing the characters that represent a date and time to convert.

format
ReadOnlySpan<Char>

Identificatore di formato che definisce il formato richiesto di input.A format specifier that defines the required format of input.

formatProvider
IFormatProvider

Oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura relativamente a input.An object that supplies culture-specific formatting information about input.

styles
DateTimeStyles

Combinazione bit per bit di valori di enumerazione che indica il formato consentito di input.A bitwise combination of enumeration values that indicates the permitted format of input. Un valore tipico da specificare è NoneA typical value to specify is None

result
DateTimeOffset

Quando termina, il metodo contiene l'oggetto DateTimeOffset equivalente alla data e all'ora di input se la conversione ha esito positivo oppure MinValue, in caso contrario.When the method returns, contains the DateTimeOffset equivalent to the date and time of input, if the conversion succeeded, or MinValue if the conversion failed. La conversione non riesce seThe conversion fails if the

Restituisce

true se il parametro input è stato convertito correttamente; in caso contrario, false.true if the input parameter is successfully converted; otherwise, false.

Eccezioni

styles include un valore DateTimeStyles non definito.styles includes an undefined DateTimeStyles value.
-oppure- NoCurrentDateDefault non è supportato.-or- NoCurrentDateDefault is not supported.
-oppure- styles include valori DateTimeStyles che si escludono a vicenda.-or- styles includes mutually exclusive DateTimeStyles values.

Commenti

Questo overload è simile al metodo DateTimeOffset.ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles), ad eccezione del fatto che questo metodo non genera un'eccezione se la conversione non riesce.This overload is like the DateTimeOffset.ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) method, except that this method does not throw an exception if the conversion fails. Analizza la rappresentazione di una data e un'ora che devono corrispondere esattamente al modello specificato dal parametro format.It parses the representation of a date and time that must exactly match the pattern specified by the format parameter. Se input non corrisponde a questo modello, con alcune variazioni possibili nello spazio vuoto definito dal parametro styles, l'operazione di analisi ha esito negativo e il metodo restituisce false.If input does not match this pattern, with some possible variations in white space defined by the styles parameter, the parsing operation fails and the method returns false.

Il parametro format è un intervallo di caratteri che contiene un singolo identificatore di formato standard o uno o più identificatori di formato personalizzati che definiscono il modello di inputrichiesto.The format parameter is a character span that contains either a single standard format specifier or one or more custom format specifiers that define the required pattern of input. Per informazioni dettagliate sui codici di formattazione validi, vedere stringhe di formato di data e ora standard e stringhe di formato di data e ora personalizzate.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Se format include gli identificatori di formato personalizzati z, zzo zzz per indicare che deve essere presente un offset nella input, tale offset deve includere un segno negativo o un segno positivo.If format includes the z, zz, or zzz custom format specifiers to indicate that an offset must be present in input, that offset must include either a negative sign or a positive sign. Se il segno non è presente, l'operazione di analisi ha esito negativo e il metodo restituisce false.If the sign is missing, the parsing operation fails and the method returns false.

Se format richiede che input contengano una data ma non un'ora, all'oggetto DateTimeOffset risultante viene assegnata un'ora della mezzanotte (0:00:00).If format requires that input contain a date but not a time, the resulting DateTimeOffset object is assigned a time of midnight (0:00:00). Se format richiede che input contengano un'ora ma non una data, all'oggetto DateTimeOffset risultante viene assegnata la data corrente nel sistema locale.If format requires that input contain a time but not a date, the resulting DateTimeOffset object is assigned the current date on the local system. Se format non richiede che input contengano un offset, l'offset dell'oggetto DateTimeOffset risultante dipende dal valore del parametro styles.If format does not require that input contain an offset, the offset of the resulting DateTimeOffset object depends on the value of the styles parameter. Se styles include AssumeLocal, l'offset del fuso orario locale viene assegnato all'oggetto DateTimeOffset.If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. Se styles include AssumeUniversal, l'offset UTC (Coordinated Universal Time) o + 00:00 viene assegnato all'oggetto DateTimeOffset.If styles includes AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. Se non viene specificato alcun valore, viene utilizzato l'offset del fuso orario locale.If neither value is specified, the offset of the local time zone is used.

I simboli e le stringhe di data e ora specifici usati in input sono definiti dal parametro di formatProvider.The particular date and time symbols and strings used in input are defined by the formatProvider parameter. Lo stesso vale per il modello preciso di input se format è una stringa dell'identificatore di formato standard.The same is true for the precise pattern of input if format is a standard format specifier string. Il formatProvider parametro può essere uno dei seguenti:The formatProvider parameter can be either of the following:

Se formatprovider è null, viene utilizzato l'oggetto CultureInfo che corrisponde alle impostazioni cultura correnti.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

Il parametro styles definisce se nella stringa di input è consentito lo spazio vuoto, indica il modo in cui vengono analizzate le stringhe senza un componente di offset esplicito e supporta la conversione UTC come parte dell'operazione di analisi.The styles parameter defines whether white space is allowed in the input string, indicates how strings without an explicit offset component are parsed, and supports UTC conversion as part of the parsing operation. Tutti i membri dell'enumerazione DateTimeStyles sono supportati eccetto NoCurrentDateDefault.All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. Nella tabella seguente sono elencati gli effetti di ogni membro supportato.The following table lists the effect of each supported member.

MembroDateTimeStylesDateTimeStyles member ComportamentoBehavior
AdjustToUniversal Analizza input e, se necessario, lo converte in formato UTC.Parses input and, if necessary, converts it to UTC. Equivale all'analisi di una rappresentazione di data e ora, quindi alla chiamata del metodo di DateTimeOffset.ToUniversalTime dell'oggetto DateTimeOffset restituito.It is equivalent to parsing a date and time representation, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal Se format non richiede che input contengano un valore di offset, all'oggetto DateTimeOffset restituito viene assegnato l'offset del fuso orario locale.If format does not require that input contain an offset value, the returned DateTimeOffset object is given the offset of the local time zone. Comportamento predefinito.This is the default behavior.
AssumeUniversal Se format non richiede che input contengano un valore di offset, all'oggetto DateTimeOffset restituito viene assegnato l'offset UTC (+ 00:00).If format does not require that input contain an offset value, the returned DateTimeOffset object is given the UTC offset (+00:00).
AllowInnerWhite Consente input di includere spazi vuoti interni non specificati dal formato.Allows input to include inner white space not specified by format. Gli spazi vuoti aggiuntivi possono essere visualizzati tra i componenti di data e ora e all'interno di singoli componenti, diversi dall'offset, e vengono ignorati durante l'analisi della stringa.Extra white space can appear between date and time components and within individual components, other than the offset, and is ignored when parsing the string.
AllowLeadingWhite Consente input di includere gli spazi iniziali non specificati da format.Allows input to include leading spaces not specified by format. Questi vengono ignorati durante l'analisi della stringa.These are ignored when parsing the string.
AllowTrailingWhite Consente input di includere spazi finali non specificati da format.Allows input to include trailing spaces not specified by format. Questi vengono ignorati durante l'analisi della stringa.These are ignored when parsing the string.
AllowWhiteSpaces Consente input di includere spazi iniziali, finali e interni non specificati da format.Allows input to include leading, trailing, and inner spaces not specified by format. Tutti gli spazi vuoti aggiuntivi non specificati nel format vengono ignorati durante l'analisi della stringa.All extra white-space characters not specified in format are ignored when parsing the string.
None Indica che non è consentito lo spazio vuoto aggiuntivo in input.Indicates that additional white space is not permitted in input. Gli spazi vuoti devono essere visualizzati esattamente come specificato in format.White space must appear exactly as specified in format. Comportamento predefinito.This is the default behavior.
RoundtripKind Non ha alcun effetto, perché la struttura DateTimeOffset non include una proprietà Kind.Has no effect, because the DateTimeOffset structure does not include a Kind property.

TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTimeOffset)

Converte una rappresentazione di una data e ora in un intervallo di caratteri nell'elemento DateTimeOffset equivalente usando i formati, le informazioni sul formato delle impostazioni cultura e lo stile specificati.Converts the representation of a date and time in a character span to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. Il formato della rappresentazione di data e ora deve corrispondere esattamente a uno dei formati specificati.The format of the date and time representation must match one of the specified formats exactly.

public:
 static bool TryParseExact(ReadOnlySpan<char> input, cli::array <System::String ^> ^ formats, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTimeOffset % result);
public static bool TryParseExact (ReadOnlySpan<char> input, string[] formats, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
static member TryParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTimeOffset -> bool
Public Shared Function TryParseExact (input As ReadOnlySpan(Of Char), formats As String(), formatProvider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTimeOffset) As Boolean

Parametri

input
ReadOnlySpan<Char>

Intervallo contenente i caratteri che rappresentano una data e ora da convertire.A span containing the characters that represent a date and time to convert.

formats
String[]

Matrice di stringhe di formato standard o personalizzato che definiscono i formati accettabili di input.A array of standard or custom format strings that define the acceptable formats of input.

formatProvider
IFormatProvider

Oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura relativamente a input.An object that supplies culture-specific formatting information about input.

styles
DateTimeStyles

Combinazione bit per bit di valori di enumerazione che indica il formato consentito di input.A bitwise combination of enumeration values that indicates the permitted format of input. Un valore tipico da specificare è NoneA typical value to specify is None

result
DateTimeOffset

Quando termina, il metodo contiene l'oggetto DateTimeOffset equivalente alla data e all'ora di input se la conversione ha esito positivo oppure MinValue, in caso contrario.When the method returns, contains the DateTimeOffset equivalent to the date and time of input, if the conversion succeeded, or MinValue if the conversion failed. La conversione non riesce seThe conversion fails if the

Restituisce

true se il parametro input è stato convertito correttamente; in caso contrario, false.true if the input parameter is successfully converted; otherwise, false.

Eccezioni

styles include un valore DateTimeStyles non definito.styles includes an undefined DateTimeStyles value.
-oppure- NoCurrentDateDefault non è supportato.-or- NoCurrentDateDefault is not supported.
-oppure- styles include valori DateTimeStyles che si escludono a vicenda.-or- styles includes mutually exclusive DateTimeStyles values.

Commenti

Questo metodo analizza la rappresentazione di stringa di una data che corrisponde a uno dei modelli assegnati alla matrice formats.This method parses the string representation of a date that matches any one of the patterns assigned to the formats array. Se input non corrisponde a uno di questi modelli con le variazioni definite dal parametro styles, l'operazione di analisi ha esito negativo e il metodo restituisce false.If input does not match any one of these patterns with any variations defined by the styles parameter, the parsing operation fails and the method returns false. Oltre a confrontare input a più stringhe che contengono identificatori di formato, questo overload si comporta in modo identico al metodo DateTimeOffset.ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles).Aside from comparing input to multiple strings that contain format specifiers, this overload behaves identically to the DateTimeOffset.ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles) method.

Il formats parametro è una matrice di stringhe i cui elementi contengono un singolo identificatore di formato standard o uno o più identificatori di formato personalizzati che definiscono il modello possibile di input.The formats parameter is a string array whose elements contain either a single standard format specifier or one or more custom format specifiers that define the possible pattern of input. Per informazioni dettagliate sui codici di formattazione validi, vedere stringhe di formato di data e ora standard e stringhe di formato di data e ora personalizzate.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Se l'elemento corrispondente in formats include gli identificatori di formato personalizzati z, zzo zzz per indicare che deve essere presente un offset nella input, tale offset deve includere un segno negativo o un segno positivo.If the matched element in formats includes the z, zz, or zzz custom format specifiers to indicate that an offset must be present in input, that offset must include either a negative sign or a positive sign. Se il segno non è presente, l'operazione di analisi ha esito negativo e il metodo restituisce false.If the sign is missing, the parse operation fails and the method returns false.

Importante

L'uso del parametro formats di questo overload per specificare più formati può aiutare a ridurre la frustrazione di molti utenti durante l'immissione di date e ore.Using the formats parameter of this overload to specify multiple formats can help reduce the frustration many users experience when they enter dates and times. In particolare, la possibilità di definire più modelli di input consente a un'applicazione di gestire le rappresentazioni di data e ora che possono includere o mancano zeri iniziali in mesi, giorni, ore, minuti e secondi.In particular, the ability to define multiple input patterns enables an application to handle date and time representations that can either include or lack leading zeros in months, days, hours, minutes, and seconds. Nell'esempio viene illustrata questa situazione.The example provides an illustration of this.

Se per l'elemento corrispondente in formats è necessario che input contengano una data, ma non un'ora, all'oggetto DateTimeOffset risultante viene assegnata un'ora della mezzanotte (0:00:00).If the matched element in formats requires that input contain a date but not a time, the resulting DateTimeOffset object is assigned a time of midnight (0:00:00). Se l'elemento corrispondente in formats richiede che l'input contenga un'ora ma non una data, all'oggetto DateTimeOffset risultante viene assegnata la data corrente nel sistema locale.If the matched element in formats requires that input contain a time but not a date, the resulting DateTimeOffset object is assigned the current date on the local system. Se l'elemento corrispondente in formats non richiede che input contengano un offset, l'offset dell'oggetto DateTimeOffset risultante dipende dal valore del parametro styles.If the matched element in formats does not require that input contain an offset, the offset of the resulting DateTimeOffset object depends on the value of the styles parameter. Se styles include DateTimeStyles.AssumeLocal, l'offset del fuso orario locale viene assegnato all'oggetto DateTimeOffset.If styles includes DateTimeStyles.AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. Se styles include DateTimeStyles.AssumeUniversal, l'offset UTC (Coordinated Universal Time) o + 00:00 viene assegnato all'oggetto DateTimeOffset.If styles includes DateTimeStyles.AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. Se non viene specificato alcun valore, viene utilizzato l'offset del fuso orario locale.If neither value is specified, the offset of the local time zone is used.

I simboli di data e ora specifici utilizzati in input sono definiti dal parametro di formatProvider.The particular date and time symbols used in input are defined by the formatProvider parameter. Lo stesso vale per il modello preciso di input se l'elemento corrispondente di formats è una stringa dell'identificatore di formato standard.The same is true for the precise pattern of input if the matching element of formats is a standard format specifier string. Il formatProvider parametro può essere uno dei seguenti:The formatProvider parameter can be either of the following:

Se formatprovider è null, viene utilizzato l'oggetto CultureInfo che corrisponde alle impostazioni cultura correnti.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

Il parametro styles definisce se è consentito lo spazio vuoto nella stringa di input, indica il modo in cui vengono analizzate le stringhe senza un componente di offset esplicito e supporta la conversione UTC come parte dell'operazione di analisi.The styles parameter defines whether white space is permitted in the input string, indicates how strings without an explicit offset component are parsed, and supports UTC conversion as part of the parsing operation. Tutti i membri dell'enumerazione DateTimeStyles sono supportati eccetto NoCurrentDateDefault.All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. Nella tabella seguente sono elencati gli effetti di ogni membro supportato.The following table lists the effect of each supported member.

MembroDateTimeStylesDateTimeStyles member ComportamentoBehavior
AdjustToUniversal Analizza input e, se necessario, lo converte in formato UTC.Parses input and, if necessary, converts it to UTC. Equivale all'analisi di una stringa, quindi alla chiamata del metodo di DateTimeOffset.ToUniversalTime dell'oggetto DateTimeOffset restituito.It is equivalent to parsing a string, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal Se l'elemento corrispondente in formats non richiede che input contengano un valore di offset, all'oggetto DateTimeOffset restituito viene assegnato l'offset del fuso orario locale.If the matched element in formats does not require that input contain an offset value, the returned DateTimeOffset object is given the offset of the local time zone. Questo è il valore predefinito.This is the default value.
AssumeUniversal Se l'elemento corrispondente in formats non richiede che input contengano un valore di offset, all'oggetto DateTimeOffset restituito viene assegnato l'offset UTC (+ 00:00).If the matched element in formats does not require that input contain an offset value, the returned DateTimeOffset object is given the UTC offset (+00:00).
AllowInnerWhite Consente input di includere spazi vuoti interni non specificati dagli elementi formats.Allows input to include inner white space not specified by the elements in formats. Gli spazi vuoti aggiuntivi possono essere visualizzati tra i componenti di data e ora e all'interno di singoli componenti (ad eccezione dell'offset) e vengono ignorati durante l'analisi della stringa.Extra white space can appear between date and time components and within individual components (except for the offset) and is ignored when parsing the string.
AllowLeadingWhite Consente input di includere gli spazi iniziali non specificati dagli elementi nel formats.Allows input to include leading spaces not specified by the elements in formats. Questi vengono ignorati durante l'analisi della stringa.These are ignored when parsing the string.
AllowTrailingWhite Consente input di includere gli spazi finali non specificati dagli elementi nel formats.Allows input to include trailing spaces not specified by the elements in formats. Questi vengono ignorati durante l'analisi della stringa.These are ignored when parsing the string.
AllowWhiteSpaces Consente input di includere spazi iniziali, finali e interni non specificati dagli elementi formats.Allows input to include leading, trailing, and inner spaces not specified by the elements in formats. Tutti gli spazi vuoti aggiuntivi non specificati nell'elemento corrispondente in formats vengono ignorati durante l'analisi della stringa.All extra white-space characters not specified in the matched element in formats are ignored when parsing the string.
None Indica che non è consentito lo spazio vuoto aggiuntivo in input.Indicates that additional white space is not permitted in input. Gli spazi vuoti devono essere visualizzati esattamente come specificato in un particolare elemento in formats per una corrispondenza corretta.White space must appear exactly as specified in a particular element in formats for a successful match to occur. Comportamento predefinito.This is the default behavior.
RoundtripKind Non ha alcun effetto perché la struttura DateTimeOffset non include una proprietà Kind.Has no effect because the DateTimeOffset structure does not include a Kind property.

TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset)

Converte una determinata rappresentazione di stringa di una data e di un'ora nell'oggetto DateTimeOffset equivalente usando il formato, le informazioni sul formato specifiche delle impostazioni cultura e lo stile specificati.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. Il formato della rappresentazione di stringa deve corrispondere esattamente al formato specificato.The format of the string representation must match the specified format exactly.

public:
 static bool TryParseExact(System::String ^ input, System::String ^ format, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTimeOffset % result);
public static bool TryParseExact (string input, string format, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
static member TryParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles * DateTimeOffset -> bool
Public Shared Function TryParseExact (input As String, format As String, formatProvider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTimeOffset) As Boolean

Parametri

input
String

Stringa che contiene una data e un'ora da convertire.A string that contains a date and time to convert.

format
String

Identificatore di formato che definisce il formato richiesto di input.A format specifier that defines the required format of input.

formatProvider
IFormatProvider

Oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura relativamente a input.An object that supplies culture-specific formatting information about input.

styles
DateTimeStyles

Combinazione bit per bit di valori di enumerazione che indica il formato consentito di input.A bitwise combination of enumeration values that indicates the permitted format of input. Un valore tipico da specificare è None.A typical value to specify is None.

result
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.When the method returns, contains the DateTimeOffset equivalent to the date and time of input, if the conversion succeeded, or MinValue, if the conversion failed. La conversione non riesce se il parametro input è null o non contiene una rappresentazione di stringa valida per data e ora nel formato previsto definito da format e dal provider.The conversion fails if the input parameter is null, or does not contain a valid string representation of a date and time in the expected format defined by format and provider. Questo parametro viene passato non inizializzato.This parameter is passed uninitialized.

Restituisce

true se il parametro input è stato convertito correttamente; in caso contrario, false.true if the input parameter is successfully converted; otherwise, false.

Eccezioni

styles include un valore DateTimeStyles non definito.styles includes an undefined DateTimeStyles value.

-oppure--or- NoCurrentDateDefault non è supportato.NoCurrentDateDefault is not supported.

-oppure--or- styles include valori DateTimeStyles che si escludono a vicenda.styles includes mutually exclusive DateTimeStyles values.

Esempi

Nell'esempio seguente viene usato il metodo TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset) con identificatori di formato standard e personalizzati, la lingua inglese e vari valori DateTimeStyles per analizzare diverse stringhe di data e ora.The following example uses the TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset) method with standard and custom format specifiers, the invariant culture, and various DateTimeStyles values to parse several date and time strings.

string dateString, format;  
DateTimeOffset result;
IFormatProvider provider = CultureInfo.InvariantCulture;

// Parse date-only value with invariant culture and assume time is UTC.
dateString = "06/15/2008";
format = "d";
if (DateTimeOffset.TryParseExact(dateString, format, provider, 
                                 DateTimeStyles.AssumeUniversal, 
                                 out result))
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
else
   Console.WriteLine("'{0}' is not in the correct format.", dateString);

// Parse date-only value with leading white space.
// Should return False because only trailing white space is  
// specified in method call.
dateString = " 06/15/2008";
if (DateTimeOffset.TryParseExact(dateString, format, provider, 
                                 DateTimeStyles.AllowTrailingWhite, 
                                 out result))
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
else
   Console.WriteLine("'{0}' is not in the correct format.", dateString);

// Parse date and time value, and allow all white space.
dateString = " 06/15/   2008  15:15    -05:00";
format = "MM/dd/yyyy H:mm zzz";
if (DateTimeOffset.TryParseExact(dateString, format, provider, 
                                 DateTimeStyles.AllowWhiteSpaces, 
                                 out result))
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
else
   Console.WriteLine("'{0}' is not in the correct format.", dateString);

// Parse date and time and convert to UTC.
dateString = "  06/15/2008 15:15:30 -05:00";   
format = "MM/dd/yyyy H:mm:ss zzz";       
if (DateTimeOffset.TryParseExact(dateString, format, provider, 
                                DateTimeStyles.AllowWhiteSpaces | 
                                DateTimeStyles.AdjustToUniversal, 
                                out result))
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
else
   Console.WriteLine("'{0}' is not in the correct format.", dateString);
// The example displays the following output:
//    '06/15/2008' converts to 6/15/2008 12:00:00 AM +00:00.
//    ' 06/15/2008' is not in the correct format.
//    ' 06/15/   2008  15:15    -05:00' converts to 6/15/2008 3:15:00 PM -05:00.
//    '  06/15/2008 15:15:30 -05:00' converts to 6/15/2008 8:15:30 PM +00:00.
Dim dateString, format As String  
Dim result As DateTimeOffset
Dim provider As CultureInfo = CultureInfo.InvariantCulture

' Parse date-only value with invariant culture and assume time is UTC.
dateString = "06/15/2008"
format = "d"
If DateTimeOffset.TryParseExact(dateString, format, provider, _
                                   DateTimeStyles.AssumeUniversal, _
                                   result) Then
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Else
   Console.WriteLine("'{0}' is not in the correct format.", dateString)
End If 

' Parse date-only value with leading white space.
' Should return False because only trailing white space is  
' specified in method call.
dateString = " 06/15/2008"
If DateTimeOffset.TryParseExact(dateString, format, provider, _
                                DateTimeStyles.AllowTrailingWhite, _
                                result) Then
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Else
   Console.WriteLine("'{0}' is not in the correct format.", dateString)
End If 

' Parse date and time value, and allow all white space.
dateString = " 06/15/   2008  15:15    -05:00"
format = "MM/dd/yyyy H:mm zzz"
If DateTimeOffset.TryParseExact(dateString, format, provider, _
                                DateTimeStyles.AllowWhiteSpaces, _
                                result) Then
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Else
   Console.WriteLine("'{0}' is not in the correct format.", dateString)
End If 

' Parse date and time and convert to UTC.
dateString = "  06/15/2008 15:15:30 -05:00"   
format = "MM/dd/yyyy H:mm:ss zzz"       
If DateTimeOffset.TryParseExact(dateString, format, provider, _
                                DateTimeStyles.AllowWhiteSpaces Or _
                                DateTimeStyles.AdjustToUniversal, _
                                result) Then
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Else
   Console.WriteLine("'{0}' is not in the correct format.", dateString)
End If 
' The example displays the following output:
'    '06/15/2008' converts to 6/15/2008 12:00:00 AM +00:00.
'    ' 06/15/2008' is not in the correct format.
'    ' 06/15/   2008  15:15    -05:00' converts to 6/15/2008 3:15:00 PM -05:00.
'    '  06/15/2008 15:15:30 -05:00' converts to 6/15/2008 8:15:30 PM +00:00.

Nell'esempio seguente viene usata un'ampia gamma di valori DateTimeStyles per analizzare una matrice di stringhe che dovrebbero essere conformi allo standard ISO 8601.The following example uses a variety of DateTimeStyles values to parse an array of strings that are expected to conform to ISO 8601. Come illustrato nell'output dell'esempio, le stringhe nel formato corretto non vengono analizzate se:As the output from the example shows, strings that are in the proper format fail to parse if:

Si presuppone che le stringhe che non specificano un offset UTC abbiano l'offset del fuso orario locale (in questo caso,-07:00, che riflette l'offset del fuso orario dell'ora legale Pacifico), a meno che il flag di DateTimeStyles.AssumeUniversal non venga specificato nella chiamata al metodo.Strings that do not specify a UTC offset are assumed to have the offset of the local time zone (in this case, -07:00, which reflects the offset of the Pacific Daylight Time zone) unless the DateTimeStyles.AssumeUniversal flag is supplied in the method call. In tal caso, si presuppone che sia tempo coordinato universale.In that case, they are assumed to be Universal Coordinated Time.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] dateStrings = { "2018-08-18T12:45:16.0000000Z",
                               "2018/08/18T12:45:16.0000000Z",
                               "2018-18-08T12:45:16.0000000Z",
                               "2018-08-18T12:45:16.0000000",                               
                               " 2018-08-18T12:45:16.0000000Z ",
                               "2018-08-18T12:45:16.0000000+02:00",
                               "2018-08-18T12:45:16.0000000-07:00" }; 
      
      ParseWithISO8601(dateStrings, DateTimeStyles.None);
      Console.WriteLine("\n-----\n");
      ParseWithISO8601(dateStrings, DateTimeStyles.AllowWhiteSpaces);
      Console.WriteLine("\n-----\n");
      ParseWithISO8601(dateStrings, DateTimeStyles.AdjustToUniversal);
      Console.WriteLine("\n-----\n");
      ParseWithISO8601(dateStrings, DateTimeStyles.AssumeLocal);
      Console.WriteLine("\n-----\n");
      ParseWithISO8601(dateStrings, DateTimeStyles.AssumeUniversal);   }

   private static void ParseWithISO8601(string[] dateStrings, DateTimeStyles styles)
   {   
      Console.WriteLine($"Parsing with {styles}:");
      DateTimeOffset date;
      foreach (var dateString in dateStrings)
      {
         if (DateTimeOffset.TryParseExact(dateString, "O", null, styles, out date))
         {
            Console.WriteLine($"   {dateString,-35} --> {date:yyyy-MM-dd HH:mm:ss.FF zzz}");
         }
         else
         {
            Console.WriteLine($"   Unable to convert '{dateString}'");
         }   
      } 
   }
}
// The example displays the following output:
//      Parsing with None:
//         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
//         Unable to convert '2018/08/18T12:45:16.0000000Z'
//         Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 -07:00
//         Unable to convert ' 2018-08-18T12:45:16.0000000Z '
//         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
//         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00
//
//      -----
//
//      Parsing with AllowWhiteSpaces:
//         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
//         Unable to convert '2018/08/18T12:45:16.0000000Z'
//         Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 -07:00
//          2018-08-18T12:45:16.0000000Z       --> 2018-08-18 12:45:16 +00:00
//         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
//         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00
//
//      -----
//
//      Parsing with AdjustToUniversal:
//         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
//         Unable to convert '2018/08/18T12:45:16.0000000Z'
//         Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 19:45:16 +00:00
//         Unable to convert ' 2018-08-18T12:45:16.0000000Z '
//         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 10:45:16 +00:00
//         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 19:45:16 +00:00
//
//      -----
//
//      Parsing with AssumeLocal:
//         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
//         Unable to convert '2018/08/18T12:45:16.0000000Z'
//         Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 -07:00
//         Unable to convert ' 2018-08-18T12:45:16.0000000Z '
//         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
//         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00
//
//      -----
//
//      Parsing with AssumeUniversal:
//         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
//         Unable to convert '2018/08/18T12:45:16.0000000Z'
//         Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 +00:00
//         Unable to convert ' 2018-08-18T12:45:16.0000000Z '
//         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
//         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim dateStrings() = { "2018-08-18T12:45:16.0000000Z",
                            "2018/08/18T12:45:16.0000000Z",
                            "2018-18-08T12:45:16.0000000Z",
                            "2018-08-18T12:45:16.0000000",                               
                            " 2018-08-18T12:45:16.0000000Z ",
                            "2018-08-18T12:45:16.0000000+02:00",
                            "2018-08-18T12:45:16.0000000-07:00" } 
      
      ParseWithISO8601(dateStrings, DateTimeStyles.None)
      Console.WriteLine($"{vbCrLf}-----{vbCrLf}")
      ParseWithISO8601(dateStrings, DateTimeStyles.AllowWhiteSpaces)
      Console.WriteLine($"{vbCrLf}-----{vbCrLf}")
      ParseWithISO8601(dateStrings, DateTimeStyles.AdjustToUniversal)
      Console.WriteLine($"{vbCrLf}-----{vbCrLf}")
      ParseWithISO8601(dateStrings, DateTimeStyles.AssumeLocal)
      Console.WriteLine($"{vbCrLf}-----{vbCrLf}")
      ParseWithISO8601(dateStrings, DateTimeStyles.AssumeUniversal)   
   End Sub

   Private Sub ParseWithISO8601(dateStrings() As String, styles As DateTimeStyles)
      Console.WriteLine($"Parsing with {styles}:")
      Dim dat As DateTimeOffset
      For Each dateStr In dateStrings
         If DateTimeOffset.TryParseExact(dateStr, "O", Nothing, styles, dat) Then
            Console.WriteLine($"   {dateStr,-35} --> {dat:yyyy-MM-dd HH:mm:ss.FF zzz}")
         Else
            Console.WriteLine($"   Unable to convert '{dateStr}'")
         End If   
      Next 
   End Sub
End Module
' The example displays the following output:
'      Parsing with None:
'         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
'         Unable to convert '2018/08/18T12:45:16.0000000Z'
'         Unable to convert '2018-18-08T12:45:16.0000000Z'
'         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 -07:00
'         Unable to convert ' 2018-08-18T12:45:16.0000000Z '
'         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
'         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00
'
'      -----
'
'      Parsing with AllowWhiteSpaces:
'         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
'         Unable to convert '2018/08/18T12:45:16.0000000Z'
'         Unable to convert '2018-18-08T12:45:16.0000000Z'
'         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 -07:00
'          2018-08-18T12:45:16.0000000Z       --> 2018-08-18 12:45:16 +00:00
'         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
'         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00
'
'      -----
'
'      Parsing with AdjustToUniversal:
'         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
'         Unable to convert '2018/08/18T12:45:16.0000000Z'
'         Unable to convert '2018-18-08T12:45:16.0000000Z'
'         2018-08-18T12:45:16.0000000         --> 2018-08-18 19:45:16 +00:00
'         Unable to convert ' 2018-08-18T12:45:16.0000000Z '
'         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 10:45:16 +00:00
'         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 19:45:16 +00:00
'
'      -----
'
'      Parsing with AssumeLocal:
'         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
'         Unable to convert '2018/08/18T12:45:16.0000000Z'
'         Unable to convert '2018-18-08T12:45:16.0000000Z'
'         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 -07:00
'         Unable to convert ' 2018-08-18T12:45:16.0000000Z '
'         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
'         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00
'
'      -----
'
'      Parsing with AssumeUniversal:
'         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
'         Unable to convert '2018/08/18T12:45:16.0000000Z'
'         Unable to convert '2018-18-08T12:45:16.0000000Z'
'         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 +00:00
'         Unable to convert ' 2018-08-18T12:45:16.0000000Z '
'         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
'         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00

Commenti

Questo overload del metodo TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset) è analogo al metodo DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles), ad eccezione del fatto che questo metodo non genera un'eccezione se la conversione non riesce.This overload of the TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset) method is like the DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) method, except that this method does not throw an exception if the conversion fails. Analizza la rappresentazione di stringa di una data e un'ora che devono corrispondere esattamente al modello specificato dal parametro format.It parses the string representation of a date and time that must exactly match the pattern specified by the format parameter. Se la stringa input non corrisponde a questo modello, con alcune variazioni possibili nello spazio vuoto definito dal parametro styles, l'operazione di analisi ha esito negativo e il metodo restituisce false.If the input string does not match this pattern, with some possible variations in white space defined by the styles parameter, the parsing operation fails and the method returns false.

Il parametro format è una stringa che contiene un singolo identificatore di formato standard o uno o più identificatori di formato personalizzati che definiscono il modello di inputrichiesto.The format parameter is a string that contains either a single standard format specifier or one or more custom format specifiers that define the required pattern of input. Per informazioni dettagliate sui codici di formattazione validi, vedere stringhe di formato di data e ora standard e stringhe di formato di data e ora personalizzate.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Se format include gli identificatori di formato personalizzati z, zzo zzz per indicare che deve essere presente un offset nella input, tale offset deve includere un segno negativo o un segno positivo.If format includes the z, zz, or zzz custom format specifiers to indicate that an offset must be present in input, that offset must include either a negative sign or a positive sign. Se il segno non è presente, l'operazione di analisi ha esito negativo e il metodo restituisce false.If the sign is missing, the parsing operation fails and the method returns false.

Se format richiede che input contengano una data ma non un'ora, all'oggetto DateTimeOffset risultante viene assegnata un'ora della mezzanotte (0:00:00).If format requires that input contain a date but not a time, the resulting DateTimeOffset object is assigned a time of midnight (0:00:00). Se format richiede che input contengano un'ora ma non una data, all'oggetto DateTimeOffset risultante viene assegnata la data corrente nel sistema locale.If format requires that input contain a time but not a date, the resulting DateTimeOffset object is assigned the current date on the local system. Se format non richiede che input contengano un offset, l'offset dell'oggetto DateTimeOffset risultante dipende dal valore del parametro styles.If format does not require that input contain an offset, the offset of the resulting DateTimeOffset object depends on the value of the styles parameter. Se styles include AssumeLocal, l'offset del fuso orario locale viene assegnato all'oggetto DateTimeOffset.If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. Se styles include AssumeUniversal, l'offset UTC (Coordinated Universal Time) o + 00:00 viene assegnato all'oggetto DateTimeOffset.If styles includes AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. Se non viene specificato alcun valore, viene utilizzato l'offset del fuso orario locale.If neither value is specified, the offset of the local time zone is used.

I simboli e le stringhe di data e ora specifici usati in input sono definiti dal parametro di formatProvider.The particular date and time symbols and strings used in input are defined by the formatProvider parameter. Lo stesso vale per il modello preciso di input se format è una stringa dell'identificatore di formato standard.The same is true for the precise pattern of input if format is a standard format specifier string. Il formatProvider parametro può essere uno dei seguenti:The formatProvider parameter can be either of the following:

Se formatprovider è null, viene utilizzato l'oggetto CultureInfo che corrisponde alle impostazioni cultura correnti.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

Il parametro styles definisce se nella stringa di input è consentito lo spazio vuoto, indica il modo in cui vengono analizzate le stringhe senza un componente di offset esplicito e supporta la conversione UTC come parte dell'operazione di analisi.The styles parameter defines whether white space is allowed in the input string, indicates how strings without an explicit offset component are parsed, and supports UTC conversion as part of the parsing operation. Tutti i membri dell'enumerazione DateTimeStyles sono supportati eccetto NoCurrentDateDefault.All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. Nella tabella seguente sono elencati gli effetti di ogni membro supportato.The following table lists the effect of each supported member.

MembroDateTimeStylesDateTimeStyles member ComportamentoBehavior
AdjustToUniversal Analizza input e, se necessario, lo converte in formato UTC.Parses input and, if necessary, converts it to UTC. Equivale all'analisi di una stringa, quindi alla chiamata del metodo di DateTimeOffset.ToUniversalTime dell'oggetto DateTimeOffset restituito.It is equivalent to parsing a string, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal Se format non richiede che input contengano un valore di offset, all'oggetto DateTimeOffset restituito viene assegnato l'offset del fuso orario locale.If format does not require that input contain an offset value, the returned DateTimeOffset object is given the offset of the local time zone. Comportamento predefinito.This is the default behavior.
AssumeUniversal Se format non richiede che input contengano un valore di offset, all'oggetto DateTimeOffset restituito viene assegnato l'offset UTC (+ 00:00).If format does not require that input contain an offset value, the returned DateTimeOffset object is given the UTC offset (+00:00).
AllowInnerWhite Consente input di includere spazi vuoti interni non specificati dal formato.Allows input to include inner white space not specified by format. Gli spazi vuoti aggiuntivi possono essere visualizzati tra i componenti di data e ora e all'interno di singoli componenti, diversi dall'offset, e vengono ignorati durante l'analisi della stringa.Extra white space can appear between date and time components and within individual components, other than the offset, and is ignored when parsing the string.
AllowLeadingWhite Consente input di includere gli spazi iniziali non specificati da format.Allows input to include leading spaces not specified by format. Questi vengono ignorati durante l'analisi della stringa.These are ignored when parsing the string.
AllowTrailingWhite Consente input di includere spazi finali non specificati da format.Allows input to include trailing spaces not specified by format. Questi vengono ignorati durante l'analisi della stringa.These are ignored when parsing the string.
AllowWhiteSpaces Consente input di includere spazi iniziali, finali e interni non specificati da format.Allows input to include leading, trailing, and inner spaces not specified by format. Tutti gli spazi vuoti aggiuntivi non specificati nel format vengono ignorati durante l'analisi della stringa.All extra white-space characters not specified in format are ignored when parsing the string.
None Indica che non è consentito lo spazio vuoto aggiuntivo in input.Indicates that additional white space is not permitted in input. Gli spazi vuoti devono essere visualizzati esattamente come specificato in format.White space must appear exactly as specified in format. Comportamento predefinito.This is the default behavior.
RoundtripKind Non ha alcun effetto, perché la struttura DateTimeOffset non include una proprietà Kind.Has no effect, because the DateTimeOffset structure does not include a Kind property.

Note per i chiamanti

Nel .NET Framework 4.NET Framework 4, il TryParseExact restituisce false se la stringa da analizzare contiene un componente hour e un designatore AM/PM che non sono concordati.In the .NET Framework 4.NET Framework 4, the TryParseExact returns false if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. Nell'.NET Framework 3.5.NET Framework 3.5 e nelle versioni precedenti, l'indicatore AM/PM viene ignorato.In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Vedi anche

Si applica a