DateTimeOffset.ParseExact DateTimeOffset.ParseExact DateTimeOffset.ParseExact DateTimeOffset.ParseExact Method

Definition

Konvertiert die angegebene Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe in die DateTimeOffset-Entsprechung.Converts the specified string representation of a date and time to its DateTimeOffset equivalent. Das Format der Zeichenfolgendarstellung muss einem angegebenen Format genau entsprechen.The format of the string representation must match a specified format exactly.

Überlädt

ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles)

Konvertiert die angegebene Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe unter Verwendung der angegebenen Formate, kulturspezifischen Formatierungsinformationen und des Stils in den entsprechenden DateTimeOffset.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. Das Format der Zeichenfolgendarstellung muss einem der angegebenen Formate genau entsprechen.The format of the string representation must match one of the specified formats exactly.

ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles)

Konvertiert die angegebene Zeichenfolgenentsprechung einer Datums- und Uhrzeitangabe unter Verwendung der Angaben über Format, kulturabhängige Formatierungsinformationen und Stil in die entsprechende DateTimeOffset.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. Das Format der Zeichenfolgendarstellung muss dem angegebenen Format genau entsprechen.The format of the string representation must match the specified format exactly.

ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

Konvertiert einen Zeichenbereich, der eine Datums- und Uhrzeitangabe darstellt, unter Verwendung der Angaben über Format, kulturabhängige Formatierungsinformationen und Stil in den entsprechenden DateTimeOffset.Converts a character span that represents a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. Das Format der Darstellung von Datum und Uhrzeit muss dem angegebenen Format genau entsprechen.The format of the date and time representation must match the specified format exactly.

ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider)

Konvertiert die angegebene Zeichenfolgenentsprechung einer Datums- und Uhrzeitangabe unter Verwendung des angegebenen Formats und der angegebenen kulturabhängigen Formatierungsinformationen in die entsprechende DateTimeOffset.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format and culture-specific format information. Das Format der Zeichenfolgendarstellung muss dem angegebenen Format genau entsprechen.The format of the string representation must match the specified format exactly.

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

Konvertiert einen Zeichenbereich mit der Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe unter Verwendung der Angaben über Format, kulturabhängige Formatierungsinformationen und Stil in den entsprechenden DateTimeOffset.Converts a character span that contains the string representation of a date and time to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. Das Format der Darstellung von Datum und Uhrzeit muss einem der angegebenen Formate genau entsprechen.The format of the date and time representation must match one of the specified formats exactly.

ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles)

Konvertiert die angegebene Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe unter Verwendung der angegebenen Formate, kulturspezifischen Formatierungsinformationen und des Stils in den entsprechenden DateTimeOffset.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. Das Format der Zeichenfolgendarstellung muss einem der angegebenen Formate genau entsprechen.The format of the string representation must match one of the specified formats exactly.

public:
 static DateTimeOffset ParseExact(System::String ^ input, cli::array <System::String ^> ^ formats, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles);
public static DateTimeOffset ParseExact (string input, string[] formats, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles);
static member ParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function ParseExact (input As String, formats As String(), formatProvider As IFormatProvider, styles As DateTimeStyles) As DateTimeOffset

Parameter

input
String String String String

Eine Zeichenfolge, die eine zu konvertierende Datums- und Zeitangabe enthält.A string that contains a date and time to convert.

formats
String[]

Ein Array von Formatbezeichnern, die die erwarteten Formate von input definieren.An array of format specifiers that define the expected formats of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu input bereitstellt.An object that supplies culture-specific formatting information about input.

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

Eine bitweise Kombination von Enumerationswerten, die das zulässige Format von input angibt.A bitwise combination of enumeration values that indicates the permitted format of input.

Gibt zurück

Ein Objekt, das der im input-Parameter enthaltenen Datums- und Uhrzeitangabe nach den Angaben der Parameter formats, formatProvider und styles entspricht.An object that is equivalent to the date and time that is contained in the input parameter, as specified by the formats, formatProvider, and styles parameters.

Ausnahmen

Der Offset ist größer als 14 Stunden oder kleiner als -14 Stunden.The offset is greater than 14 hours or less than -14 hours.

- oder - -or- styles beinhaltet einen nicht unterstützten Wert.styles includes an unsupported value.

- oder - -or- Der styles-Parameter enthält DateTimeStyles-Werte, die nicht zusammen verwendet werden können.The styles parameter contains DateTimeStyles values that cannot be used together.

input ist eine leere Zeichenfolge ("").input is an empty string ("").

- oder - -or- input enthält keine gültige Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe.input does not contain a valid string representation of a date and time.

- oder - -or- Kein Element von formats enthält einen gültigen Formatbezeichner.No element of formats contains a valid format specifier.

- oder - -or- Die Komponente für Stunden und der AM/PM-Kennzeichner in input stimmen nicht überein.The hour component and the AM/PM designator in input do not agree.

Beispiele

Das folgende Beispiel definiert mehrere Eingabeformate für die Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe und Offsetwert und übergibt dann die Zeichenfolge, die vom Benutzer eingegeben wird die DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) Methode.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 DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) 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 = new 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();
   try
   {
      result = DateTimeOffset.ParseExact(input, formats, provider, 
                                         DateTimeStyles.AllowWhiteSpaces);
      break;
   }
   catch (FormatException)
   {
      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() 
   Try
      result = DateTimeOffset.ParseExact(input, formats, provider, _
                                         DateTimeStyles.AllowWhiteSpaces)
      Exit Do
   Catch e As FormatException
      Console.WriteLine("Unable to parse {0}.", input)      
      tries += 1
   End Try
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 

Hinweise

Die DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) -Methode analysiert die angegebene Zeichenfolgendarstellung eines Datums, der eine der zugewiesenen Muster entspricht der formats Parameter.The DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) method parses the string representation of a date that matches any one of the patterns assigned to the formats parameter. Wenn die input Zeichenfolge entspricht nicht eines dieser Muster mit den Varianten von definiert die styles Parameter, löst die Methode eine FormatException.If the input string does not match any one of these patterns with any of the variations defined by the styles parameter, the method throws a FormatException. Abgesehen von Vergleichen input mit mehreren Formatierungsmustern, diese Überladung verhält sich genauso wie die DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) Methode.Aside from comparing input to multiple formatting patterns, this overload behaves identically to the DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

Die formats -Parameter ist ein Zeichenfolgen-Array, dessen Elemente enthält, entweder einen einzelnen standardbuild-Formatbezeichner oder ein oder mehrere benutzerdefinierte Formatbezeichner, der das mögliche Muster von definieren, die input Parameter.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 the input parameter. Wenn die Methode aufgerufen wird, input muss einem der folgenden Muster übereinstimmen.When the method is called, input must match one of these patterns. Ausführliche Informationen zu gültigen Formatierungscodes finden Sie unter Standardformatzeichenfolgen für Datum und Uhrzeit-Formatzeichenfolgen und Custom Date and Time Format Strings.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Wenn das übereinstimmende Element im formats enthält die z, zz, oder zzz benutzerdefinierte Formatbezeichner, um anzugeben, dass ein Offset in vorhanden sein muss input, dem Offset muss entweder ein negativen Vorzeichen oder ein positives Vorzeichen enthalten.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. Wenn die Anmeldung nicht vorhanden ist, löst die Methode eine FormatException.If the sign is missing, the method throws a FormatException.

Wichtig

Mithilfe der formats Parameter dieser Überladung, die mehrere Formate angeben, kann Probleme der vermindert, die viele Benutzer beim Eingeben von Datumsangaben und Uhrzeiten auftreten.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. Insbesondere können Sie mehrere Eingabemuster definieren eine Anwendung zur Handhabung von Datums- und uhrzeitdarstellungen, die kann entweder ein- oder verfügen nicht über führende Nullen in Monaten, Tagen, Stunden, Minuten und Sekunden.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. Im Beispiel wird veranschaulicht, der an.The example provides an illustration of this.

Wenn das übereinstimmende Element im formats erfordert, dass input enthalten ein Datum, aber keine Uhrzeit enthält, wird die resultierende DateTimeOffset -Objekt zugewiesen ist eine Zeit von Mitternacht (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). Wenn das übereinstimmende Element im formats erfordert, dass input eine Uhrzeit, aber kein Datum enthält, wird die resultierende DateTimeOffset -Objekt das aktuelle Datum auf dem lokalen System zugewiesen ist.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. Wenn das übereinstimmende Element im formats ist nicht erforderlich, input einen Offset enthält, die Abweichung des resultierenden DateTimeOffset Objekt abhängig ist, auf dem Wert der styles Parameter.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. Wenn styles enthält AssumeLocal, der Offset der lokalen Zeitzone zugewiesen ist die DateTimeOffset Objekt.If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. Wenn styles enthält AssumeUniversal, den Offset von Coordinated Universal Time (UTC) oder + 00:00, zugewiesen ist die DateTimeOffset Objekt.If styles includes AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. Wenn kein Wert angegeben wird, wird der Offset der lokalen Zeitzone verwendet.If neither value is specified, the offset of the local time zone is used.

Die bestimmtes Datum und Uhrzeit verwendeten Symbole und Zeichenfolgen input werden definiert, indem die formatProvider Parameter.The particular date and time symbols and strings used in input are defined by the formatProvider parameter. Das gleiche gilt für das exakte Format der input, wenn das entsprechende Element der formats ist eine Standardformatzeichenfolge Spezifizierer.The same is true for the precise format of input, if the matching element of formats is a standard format specifier string. Die formatProvider Parameter kann eine der folgenden sein:The formatProvider parameter can be either of the following:

Wenn formatprovider ist null, CultureInfo -Objekt, das der aktuellen Kultur entspricht, wird verwendet.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

Die styles Parameter definiert, ob Leerzeichen erlaubt, wird in der Eingabezeichenfolge, gibt an, wie Zeichenfolgen ohne eine explizite Offset-Komponente analysiert werden und unterstützt die UTC-Konvertierung als Teil des Analysevorgangs.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. Alle Mitglieder der DateTimeStyles Enumeration werden unterstützt, mit Ausnahme von NoCurrentDateDefault.All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. Die folgende Tabelle enthält die Auswirkungen der einzelnen unterstützten Mitglied.The following table lists the effect of each supported member.

DateTimeStyles -MemberDateTimeStyles member VerhaltenBehavior
AdjustToUniversal Analysiert input und, falls erforderlich, eine Konvertierung in UTC.Parses input and, if necessary, converts it to UTC. Dies ist äquivalent zum Analysieren einer Zeichenfolge und dem anschließenden Aufrufen der DateTimeOffset.ToUniversalTime -Methode der zurückgegebenen DateTimeOffset Objekt.It is equivalent to parsing a string, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal Wenn das übereinstimmende Element im formats ist nicht erforderlich, input enthalten einen Offset-Wert, der zurückgegebenen DateTimeOffset Objekt der Offset der lokalen Zeitzone zugewiesen.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. Dies ist der Standardwert.This is the default value.
AssumeUniversal Wenn das übereinstimmende Element im formats ist nicht erforderlich, input enthalten einen Offset-Wert, der zurückgegebenen DateTimeOffset Objekt erhält den UTC-Offset (+ 00:00 Uhr).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 Ermöglicht das input auf interne Leerzeichen nicht angegeben wird, durch Einfügen format.Allows input to include inner white space not specified by format. Zusätzliche Leerzeichen auftreten können, zwischen Datums- und Zeitkomponenten und innerhalb der einzelnen Komponenten (außer der Offset) und wird ignoriert, wenn die Zeichenfolge zu analysieren.Extra white space can appear between date and time components and within individual components (except the offset), and is ignored when parsing the string.
AllowLeadingWhite Ermöglicht das input zum Einschließen von führenden Leerzeichen nicht anhand des formats.Allows input to include leading spaces not specified by formats. Beim Analysieren der Zeichenfolge, werden diese ignoriert.These are ignored when parsing the string.
AllowTrailingWhite Ermöglicht das input sollen nachfolgende Leerzeichen nicht anhand des formats.Allows input to include trailing spaces not specified by formats. Beim Analysieren der Zeichenfolge, werden diese ignoriert.These are ignored when parsing the string.
AllowWhiteSpaces Ermöglicht das input einschließen vorangestellte, nachfolgende und innere Leerzeichen nicht anhand des formats.Allows input to include leading, trailing, and inner spaces not specified by formats. Alle zusätzlichen Leerzeichen nicht in das übereinstimmende Element im angegebenen formats beim Analysieren der Zeichenfolge werden ignoriert.All extra white-space characters not specified in the matched element in formats are ignored when parsing the string.
None Gibt an, dass zusätzliche Leerraum ist nicht zulässig input.Indicates that additional white space is not permitted in input. Leerraum muss angezeigt werden, genau wie angegeben in ein bestimmtes Element des formats für eine Übereinstimmung vorliegt.White space must appear exactly as specified in a particular element of formats for a match to occur. Dies ist das Standardverhalten.This is the default behavior.
RoundtripKind Hat keine Auswirkungen, da die DateTimeOffset Struktur enthält keine Kind Eigenschaft.Has no effect because the DateTimeOffset structure does not include a Kind property.

Hinweise für Aufrufer

In der .NET Framework 4.NET Framework 4, ParseExact -Methode löst eine FormatException , wenn die zu analysierende Zeichenfolge enthält, eine Komponente für Stunden und eine AM/PM-Kennzeichner, die nicht in der Vereinbarung sind.In the .NET Framework 4.NET Framework 4, the ParseExact method throws a FormatException if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. In der .NET Framework 3,5.NET Framework 3.5 und frühere Versionen, die AM/PM-Kennzeichner wird ignoriert.In the .NET Framework 3,5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Siehe auch

ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles)

Konvertiert die angegebene Zeichenfolgenentsprechung einer Datums- und Uhrzeitangabe unter Verwendung der Angaben über Format, kulturabhängige Formatierungsinformationen und Stil in die entsprechende DateTimeOffset.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. Das Format der Zeichenfolgendarstellung muss dem angegebenen Format genau entsprechen.The format of the string representation must match the specified format exactly.

public:
 static DateTimeOffset ParseExact(System::String ^ input, System::String ^ format, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles);
public static DateTimeOffset ParseExact (string input, string format, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles);
static member ParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function ParseExact (input As String, format As String, formatProvider As IFormatProvider, styles As DateTimeStyles) As DateTimeOffset

Parameter

input
String String String String

Eine Zeichenfolge, die eine zu konvertierende Datums- und Zeitangabe enthält.A string that contains a date and time to convert.

format
String String String String

Ein Formatbezeichner, der das erwartete Format von input definiert.A format specifier that defines the expected format of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu input bereitstellt.An object that supplies culture-specific formatting information about input.

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

Eine bitweise Kombination von Enumerationswerten, die das zulässige Format von input angibt.A bitwise combination of enumeration values that indicates the permitted format of input.

Gibt zurück

Ein Objekt, das der im input-Parameter enthaltenen Datums- und Uhrzeitangabe nach den Angaben der Parameter format, formatProvider und styles entspricht.An object that is equivalent to the date and time that is contained in the input parameter, as specified by the format, formatProvider, and styles parameters.

Ausnahmen

Der Offset ist größer als 14 Stunden oder kleiner als -14 Stunden.The offset is greater than 14 hours or less than -14 hours.

- oder - -or- Der styles-Parameter enthält einen nicht unterstützten Wert.The styles parameter includes an unsupported value.

- oder - -or- Der styles-Parameter enthält DateTimeStyles-Werte, die nicht zusammen verwendet werden können.The styles parameter contains DateTimeStyles values that cannot be used together.

input ist null.input is null.

- oder - -or- format ist null.format is null.

input ist eine leere Zeichenfolge ("").input is an empty string ("").

- oder - -or- input enthält keine gültige Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe.input does not contain a valid string representation of a date and time.

- oder - -or- format ist eine leere Zeichenfolge.format is an empty string.

- oder - -or- Die Komponente für Stunden und der AM/PM-Kennzeichner in input stimmen nicht überein.The hour component and the AM/PM designator in input do not agree.

Beispiele

Im folgenden Beispiel wird die DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) -Methode mit der standardmäßigen und benutzerdefinierten Formatbezeichnern, die invariante Kultur und verschiedenen DateTimeStyles Werte beim Analysieren verschiedener Zeichenfolgen für Datum und Uhrzeit.The following example uses the DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) 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;
CultureInfo provider = CultureInfo.InvariantCulture;

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

// Parse date-only value with leading white space.
// Should throw a FormatException because only trailing white space is  
// specified in method call.
dateString = " 06/15/2008";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider, 
                                      DateTimeStyles.AllowTrailingWhite);
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
}   
catch (FormatException)
{
   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";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider, 
                                      DateTimeStyles.AllowWhiteSpaces);
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
}   
catch (FormatException)
{
   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"; 
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider, 
                                      DateTimeStyles.AllowWhiteSpaces |
                                      DateTimeStyles.AdjustToUniversal);
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
}
catch (FormatException)
{
   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"
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider, _
                                      DateTimeStyles.AssumeUniversal)
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("'{0}' is not in the correct format.", dateString)
End Try 

' Parse date-only value with leading white space.
' Should throw a FormatException because only trailing white space is  
' specified in method call.
dateString = " 06/15/2008"
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider, _
                                      DateTimeStyles.AllowTrailingWhite)
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("'{0}' is not in the correct format.", dateString)
End Try 

' 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"
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider, _
                                      DateTimeStyles.AllowWhiteSpaces)
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("'{0}' is not in the correct format.", dateString)
End Try 

' 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"       
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider, _
                                      DateTimeStyles.AllowWhiteSpaces Or _
                                      DateTimeStyles.AdjustToUniversal)
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("'{0}' is not in the correct format.", dateString)
End Try 
' 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.

Im folgenden Beispiel wird eine Vielzahl von DateTimeStyles Werte, um ein Array von Zeichenfolgen zu analysieren, die voraussichtlich entsprechen 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. Wie die Ausgabe des Beispiels zeigt, wenn analysieren nicht Zeichenfolgen, die das richtige Format aufweisen:As the output from the example shows, strings that are in the proper format fail to parse if:

  • Sie enthalten Leerzeichen, und eine entsprechende DateTimeStyles Flag (z. B. DateTimeStyles.AllowWhiteSpaces wurde nicht im Aufruf Methode bereitgestellt.they contain white space, and an appropriate DateTimeStyles flag (such as DateTimeStyles.AllowWhiteSpaces has not been supplied in the method call.

  • Sie enthalten die Datum und Uhrzeit-Elemente, die sich außerhalb des gültigen Bereichs befinden.they contain date and time elements that are out of range.

Zeichenfolgen, die keine UTC-zeitverschiebung angeben, wird angenommen, dass der Offset von der lokalen Zeitzone haben (in diesem Fall-07: 00), wenn die DateTimeStyles.AssumeUniversal Flag im Aufruf Methode angegeben wird.Strings that do not specify a UTC offset are assumed to have the offset of the local time zone (in this case, -07:00) unless the DateTimeStyles.AssumeUniversal flag is supplied in the method call. In diesem Fall werden diese als koordinierte Weltzeit sein.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}:");
      foreach (var dateString in dateStrings)
      {
         try {
            var date = DateTimeOffset.ParseExact(dateString, "O", null, styles);
            Console.WriteLine($"   {dateString,-35} --> {date:yyyy-MM-dd HH:mm:ss.FF zzz}");
         }
         catch (FormatException)
         {
            Console.WriteLine($"   FormatException: 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
//         FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
//         FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 -07:00
//         FormatException: 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
//         FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
//         FormatException: 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
//         FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
//         FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 19:45:16 +00:00
//         FormatException: 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
//         FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
//         FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 -07:00
//         FormatException: 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
//         FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
//         FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 +00:00
//         FormatException: 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}:")
      For Each dateStr In dateStrings
         Try 
            Dim dat = DateTimeOffset.ParseExact(dateString, "O", Nothing, styles)
            Console.WriteLine($"   {dateString,-35} --> {dat:yyyy-MM-dd HH:mm:ss.FF zzz}")
         catch e As FormatException
            Console.WriteLine($"   FormatException: Unable to convert '{dateString}'")
         End Try   
      Next 
   End Sub
End Module
' The example displays the following output:
'      Parsing with None:
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'
'      -----
'
'      Parsing with AllowWhiteSpaces:
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'
'      -----
'
'      Parsing with AdjustToUniversal:
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'
'      -----
'
'      Parsing with AssumeLocal:
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'
'      -----
'
'      Parsing with AssumeUniversal:
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'

Hinweise

Die DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) -Methode analysiert die angegebene Zeichenfolgendarstellung eines Datums, der das Format von definiert sein muss die format Parameter.The DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) method parses the string representation of a date, which must be in the format defined by the format parameter. Sie erfordert außerdem, dass die <Datum >, <Zeit >, und <Offset >-Elemente die Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe in der Reihenfolge gemäß format.It also requires that the <Date>, <Time>, and <Offset> elements of the string representation of a date and time appear in the order specified by format. Wenn die input Zeichenfolge entspricht nicht das Muster der format -Parameter mit allen Varianten von definiert die styles Parameter, löst die Methode eine FormatException.If the input string does not match the pattern of the format parameter, with any variations defined by the styles parameter, the method throws a FormatException. Im Gegensatz dazu die DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) -Methode analysiert die angegebene Zeichenfolgendarstellung eines Datums in einem der Formate von des Formatanbieters erkannten DateTimeFormatInfo Objekt.In contrast, the DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) method parses the string representation of a date in any one of the formats recognized by the format provider's DateTimeFormatInfo object. Parse ermöglicht auch die <Datum >, <Zeit >, und <Offset > Elemente der Zeichenfolgendarstellung von Datum und Uhrzeit in beliebiger Reihenfolge angezeigt werden.Parse also allows the <Date>, <Time>, and <Offset> elements of the string representation of a date and time to appear in any order.

Die format Parameter ist eine Zeichenfolge, enthält entweder einen einzelnen standardbuild-Formatbezeichner oder ein oder mehrere benutzerdefinierte Formatbezeichner, die das erforderliche Muster von definieren, die input Parameter.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 the input parameter. Ausführliche Informationen zu gültigen Formatierungscodes finden Sie unter Standardformatzeichenfolgen für Datum und Uhrzeit-Formatzeichenfolgen und Custom Date and Time Format Strings.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Wenn format enthält die z, zz, oder zzz benutzerdefinierte Formatbezeichner, um anzugeben, dass ein Offset in vorhanden sein muss input, dem Offset muss entweder ein negativen Vorzeichen oder ein positives Vorzeichen enthalten.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. Wenn die Anmeldung nicht vorhanden ist, löst die Methode eine FormatException.If the sign is missing, the method throws a FormatException.

Wenn format erfordert, dass input enthalten ein Datum, aber keine Uhrzeit enthält, wird die resultierende DateTimeOffset -Objekt zugewiesen ist eine Zeit von Mitternacht (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). Wenn format erfordert, dass input eine Uhrzeit, aber kein Datum enthält, wird die resultierende DateTimeOffset -Objekt das aktuelle Datum auf dem lokalen System zugewiesen ist.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. Wenn format ist nicht erforderlich, input einen Offset enthält, die Abweichung des resultierenden DateTimeOffset Objekt abhängig ist, auf dem Wert der styles Parameter.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. Wenn styles enthält AssumeLocal, der Offset der lokalen Zeitzone zugewiesen ist die DateTimeOffset Objekt.If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. Wenn styles enthält AssumeUniversal, den Offset von Coordinated Universal Time (UTC) oder + 00:00, zugewiesen ist die DateTimeOffset Objekt.If styles includes AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. Wenn kein Wert angegeben wird, wird der Offset der lokalen Zeitzone verwendet.If neither value is specified, the offset of the local time zone is used.

Die bestimmtes Datum und Uhrzeit verwendeten Symbole und Zeichenfolgen input werden definiert, indem die formatProvider Parameter.The particular date and time symbols and strings used in input are defined by the formatProvider parameter. Das gleiche gilt für das exakte Format der input, wenn format ist eine Standardformatzeichenfolge Spezifizierer.The same is true for the precise format of input, if format is a standard format specifier string. Die formatProvider Parameter kann eine der folgenden sein:The formatProvider parameter can be either of the following:

Wenn formatprovider ist null, CultureInfo -Objekt, das der aktuellen Kultur entspricht, wird verwendet.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

Die styles Parameter definiert, ob Leerzeichen zulässig ist in der Eingabezeichenfolge, gibt an, wie Zeichenfolgen ohne eine explizite Offset-Komponente analysiert werden und unterstützt die UTC-Konvertierung als Teil des Analysevorgangs.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. Alle Mitglieder der DateTimeStyles Enumeration werden unterstützt, mit Ausnahme von NoCurrentDateDefault.All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. Die folgende Tabelle enthält die Auswirkungen der einzelnen unterstützten Mitglied.The following table lists the effect of each supported member.

DateTimeStyles -MemberDateTimeStyles member VerhaltenBehavior
AdjustToUniversal Analysiert input und, falls erforderlich, eine Konvertierung in UTC.Parses input and, if necessary, converts it to UTC. Dies ist äquivalent zum Analysieren einer Zeichenfolge und dem anschließenden Aufrufen der DateTimeOffset.ToUniversalTime -Methode der zurückgegebenen DateTimeOffset Objekt.It is equivalent to parsing a string, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal Wenn format ist nicht erforderlich, input enthalten einen Offset-Wert, der zurückgegebenen DateTimeOffset Objekt der Offset der lokalen Zeitzone zugewiesen.If format does not require that input contain an offset value, the returned DateTimeOffset object is given the offset of the local time zone. Dies ist der Standardwert.This is the default value.
AssumeUniversal Wenn format ist nicht erforderlich, input enthalten einen Offset-Wert, der zurückgegebenen DateTimeOffset Objekt erhält den UTC-Offset (+ 00:00 Uhr).If format does not require that input contain an offset value, the returned DateTimeOffset object is given the UTC offset (+00:00).
AllowInnerWhite Ermöglicht das input auf interne Leerzeichen nicht angegeben wird, durch Einfügen format.Allows input to include inner white space not specified by format. Zusätzliche Leerzeichen zwischen Datums- und Zeitkomponenten und innerhalb der einzelnen Komponenten auftreten können und wird ignoriert, wenn die Zeichenfolge zu analysieren.Extra white space can appear between date and time components and within individual components, and is ignored when parsing the string.
AllowLeadingWhite Ermöglicht das input zum Einschließen von führenden Leerzeichen nicht anhand des format.Allows input to include leading spaces not specified by format. Beim Analysieren der Zeichenfolge, werden diese ignoriert.These are ignored when parsing the string.
AllowTrailingWhite Ermöglicht das input sollen nachfolgende Leerzeichen nicht anhand des format.Allows input to include trailing spaces not specified by format. Beim Analysieren der Zeichenfolge, werden diese ignoriert.These are ignored when parsing the string.
AllowWhiteSpaces Ermöglicht das input einschließen vorangestellte, nachfolgende und innere Leerzeichen nicht anhand des format.Allows input to include leading, trailing, and inner spaces not specified by format. Alle zusätzlichen Leerzeichen nicht im angegebenen format beim Analysieren der Zeichenfolge werden ignoriert.All extra white-space characters not specified in format are ignored when parsing the string.
None Gibt an, dass zusätzliche Leerraum ist nicht zulässig input.Indicates that additional white space is not permitted in input. Leerraum muss angezeigt werden, genau wie angegeben in format.White space must appear exactly as specified in format. Dies ist das Standardverhalten.This is the default behavior.
RoundtripKind Hat keine Auswirkungen, da die DateTimeOffset Struktur enthält keine Kind Eigenschaft.Has no effect because the DateTimeOffset structure does not include a Kind property.

Hinweise für Aufrufer

In der .NET Framework 4.NET Framework 4, ParseExact -Methode löst eine FormatException , wenn die zu analysierende Zeichenfolge enthält, eine Komponente für Stunden und eine AM/PM-Kennzeichner, die nicht in der Vereinbarung sind.In the .NET Framework 4.NET Framework 4, the ParseExact method throws a FormatException if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. In der .NET Framework 3,5.NET Framework 3.5 und frühere Versionen, die AM/PM-Kennzeichner wird ignoriert.In the .NET Framework 3,5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Siehe auch

ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

Konvertiert einen Zeichenbereich, der eine Datums- und Uhrzeitangabe darstellt, unter Verwendung der Angaben über Format, kulturabhängige Formatierungsinformationen und Stil in den entsprechenden DateTimeOffset.Converts a character span that represents a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. Das Format der Darstellung von Datum und Uhrzeit muss dem angegebenen Format genau entsprechen.The format of the date and time representation must match the specified format exactly.

public static DateTimeOffset ParseExact (ReadOnlySpan<char> input, ReadOnlySpan<char> format, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
static member ParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function ParseExact (input As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), formatProvider As IFormatProvider, Optional styles As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTimeOffset

Parameter

input
ReadOnlySpan<Char>

Ein Zeichenbereich, der ein Datum und eine Uhrzeit darstellt.A character span that represents a date and time.

format
ReadOnlySpan<Char>

Ein Zeichenbereich mit einem Formatspezifizierer, der das erwartete Format von input definiert.A character span that contains a format specifier that defines the expected format of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu input bereitstellt.An object that provides culture-specific formatting information about input.

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

Eine bitweise Kombination von Enumerationswerten, die das zulässige Format von input angibt.A bitwise combination of enumeration values that indicates the permitted format of input.

Gibt zurück

Ein Objekt, das der im input-Parameter enthaltenen Datums- und Uhrzeitangabe nach den Angaben der Parameter format, formatProvider und styles entspricht.An object that is equivalent to the date and time that is contained in the input parameter, as specified by the format, formatProvider, and styles parameters.

Ausnahmen

Der Offset ist größer als 14 Stunden oder kleiner als -14 Stunden.The offset is greater than 14 hours or less than -14 hours.
- oder - -or-
Der styles-Parameter enthält einen nicht unterstützten Wert.The styles parameter includes an unsupported value.
- oder - -or-
Der styles-Parameter enthält DateTimeStyles-Werte, die nicht zusammen verwendet werden können.The styles parameter contains DateTimeStyles values that cannot be used together.

input ist einer leerer Zeichenbereich.input is an empty character span.
oder input enthält keine gültige Zeichenfolgendarstellung eines Datums und einer Uhrzeit.-or- input does not contain a valid string representation of a date and time.
oder format ist einer leerer Zeichenbereich.-or- format is an empty character span.
- oder - -or-
Die Komponente für Stunden und der AM/PM-Kennzeichner in input stimmen nicht überein.The hour component and the AM/PM designator in input do not agree.

Hinweise

Diese Methode analysiert eine Spanne von Zeichen, das ein Datum darstellt, der das Format von definiert sein muss die format Parameter.This method parses a character span that represents a date, which must be in the format defined by the format parameter. Sie erfordert außerdem, dass die <Datum >, <Zeit >, und <Offset >-Elemente die Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe in der Reihenfolge gemäß format.It also requires that the <Date>, <Time>, and <Offset> elements of the string representation of a date and time appear in the order specified by format. Wenn input entspricht nicht der format Muster, löst die Methode eine FormatException.If input does not match the format pattern, the method throws a FormatException. Im Gegensatz dazu die DateTimeOffset.Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) -Methode analysiert die angegebene Zeichenfolgendarstellung eines Datums in einem der Formate von des Formatanbieters erkannten DateTimeFormatInfo Objekt.In contrast, the DateTimeOffset.Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) method parses the string representation of a date in any one of the formats recognized by the format provider's DateTimeFormatInfo object. Parse ermöglicht auch die <Datum >, <Zeit >, und <Offset > Elemente der Zeichenfolgendarstellung von Datum und Uhrzeit in beliebiger Reihenfolge angezeigt werden.Parse also allows the <Date>, <Time>, and <Offset> elements of the string representation of a date and time to appear in any order.

Die format -Parameter ist eine Spanne von Zeichen, das entweder ein einzelnes Zeichen Standardformatbezeichner oder eine oder mehrere benutzerdefinierte Formatbezeichner, die definieren, das erforderliche Format von enthält, die input Parameter.The format parameter is a character span that contains either a single-character standard format specifier or one or more custom format specifiers that define the required format of the input parameter. Ausführliche Informationen zu gültigen Formatierungscodes finden Sie unter Standardformatzeichenfolgen für Datum und Uhrzeit-Formatzeichenfolgen und Custom Date and Time Format Strings.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Wenn format enthält die z, zz, oder zzz benutzerdefinierte Formatbezeichner, um anzugeben, dass ein Offset in vorhanden sein muss input, dem Offset muss entweder ein negativen Vorzeichen oder ein positives Vorzeichen enthalten.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. Wenn die Anmeldung nicht vorhanden ist, löst die Methode eine FormatException.If the sign is missing, the method throws a FormatException.

Wenn format erfordert, dass input enthalten ein Datum, aber keine Uhrzeit enthält, wird die resultierende DateTimeOffset -Objekt zugewiesen ist eine Zeit von Mitternacht (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). Wenn format erfordert, dass input eine Uhrzeit, aber kein Datum enthält, wird die resultierende DateTimeOffset -Objekt das aktuelle Datum auf dem lokalen System zugewiesen ist.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. Wenn format ist nicht erforderlich, input einen Offset enthält, die resultierende DateTimeOffset -Objekt die angegebene Zeitzonenoffset der Zeitzone des lokalen Systems zugewiesen ist.If format does not require that input contain an offset, the resulting DateTimeOffset object is assigned the time zone offset of the local system.

Die bestimmtes Datum und Uhrzeit verwendeten Symbole und Zeichenfolgen input werden definiert, indem die formatProvider Parameter, ebenso wie das genaue Format der input Wenn format Standardformatbezeichner ist.The particular date and time symbols and strings used in input are defined by the formatProvider parameter, as is the precise format of input if format is a standard format specifier. Die formatProvider Parameter kann eine der folgenden sein:The formatProvider parameter can be either of the following:

Wenn formatprovider ist null, CultureInfo -Objekt, das der aktuellen Kultur entspricht, wird verwendet.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider)

Konvertiert die angegebene Zeichenfolgenentsprechung einer Datums- und Uhrzeitangabe unter Verwendung des angegebenen Formats und der angegebenen kulturabhängigen Formatierungsinformationen in die entsprechende DateTimeOffset.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format and culture-specific format information. Das Format der Zeichenfolgendarstellung muss dem angegebenen Format genau entsprechen.The format of the string representation must match the specified format exactly.

public:
 static DateTimeOffset ParseExact(System::String ^ input, System::String ^ format, IFormatProvider ^ formatProvider);
public static DateTimeOffset ParseExact (string input, string format, IFormatProvider formatProvider);
static member ParseExact : string * string * IFormatProvider -> DateTimeOffset
Public Shared Function ParseExact (input As String, format As String, formatProvider As IFormatProvider) As DateTimeOffset

Parameter

input
String String String String

Eine Zeichenfolge, die eine zu konvertierende Datums- und Zeitangabe enthält.A string that contains a date and time to convert.

format
String String String String

Ein Formatbezeichner, der das erwartete Format von input definiert.A format specifier that defines the expected format of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu input bereitstellt.An object that supplies culture-specific formatting information about input.

Gibt zurück

Ein Objekt, das der in input enthaltenen Datums- und Uhrzeitangabe nach den Angaben von format und formatProvider entspricht.An object that is equivalent to the date and time that is contained in input as specified by format and formatProvider.

Ausnahmen

Der Offset ist größer als 14 Stunden oder kleiner als -14 Stunden.The offset is greater than 14 hours or less than -14 hours.

input ist null.input is null.

- oder - -or- format ist null.format is null.

input ist eine leere Zeichenfolge ("").input is an empty string ("").

- oder - -or- input enthält keine gültige Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe.input does not contain a valid string representation of a date and time.

- oder - -or- format ist eine leere Zeichenfolge.format is an empty string.

- oder - -or- Die Komponente für Stunden und der AM/PM-Kennzeichner in input stimmen nicht überein.The hour component and the AM/PM designator in input do not agree.

Beispiele

Im folgenden Beispiel wird die DateTimeOffset.ParseExact(String, String, IFormatProvider) Methode mit standardmäßigen und benutzerdefinierten Formatbezeichner und die invariante Kultur zum Analysieren verschiedener Zeichenfolgen für Datum und Uhrzeit.The following example uses the DateTimeOffset.ParseExact(String, String, IFormatProvider) method with standard and custom format specifiers and the invariant culture to parse several date and time strings.

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

// Parse date-only value with invariant culture.
dateString = "06/15/2008";
format = "d";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}   
catch (FormatException)
{
   Console.WriteLine("{0} is not in the correct format.", dateString);
} 

// Parse date-only value without leading zero in month using "d" format.
// Should throw a FormatException because standard short date pattern of 
// invariant culture requires two-digit month.
dateString = "6/15/2008";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException)
{
   Console.WriteLine("{0} is not in the correct format.", dateString);
} 

// Parse date and time with custom specifier.
dateString = "Sun 15 Jun 2008 8:30 AM -06:00";
format = "ddd dd MMM yyyy h:mm tt zzz";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException)
{
   Console.WriteLine("{0} is not in the correct format.", dateString);
} 

// Parse date and time with offset without offset//s minutes.
// Should throw a FormatException because "zzz" specifier requires leading  
// zero in hours.
dateString = "Sun 15 Jun 2008 8:30 AM -06";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException)
{
   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 -07:00.
//    6/15/2008 is not in the correct format.
//    Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 8:30:00 AM -06:00.
//    Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.                     
Dim dateString, format As String  
Dim result As DateTimeOffset
Dim provider As CultureInfo = CultureInfo.InvariantCulture

' Parse date-only value with invariant culture.
dateString = "06/15/2008"
format = "d"
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider)
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("{0} is not in the correct format.", dateString)
End Try 

' Parse date-only value without leading zero in month using "d" format.
' Should throw a FormatException because standard short date pattern of 
' invariant culture requires two-digit month.
dateString = "6/15/2008"
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider)
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("{0} is not in the correct format.", dateString)
End Try 

' Parse date and time with custom specifier.
dateString = "Sun 15 Jun 2008 8:30 AM -06:00"
format = "ddd dd MMM yyyy h:mm tt zzz"        
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider)
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("{0} is not in the correct format.", dateString)
End Try 

' Parse date and time with offset without offset's minutes.
' Should throw a FormatException because "zzz" specifier requires leading  
' zero in hours.
dateString = "Sun 15 Jun 2008 8:30 AM -06"
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider)
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("{0} is not in the correct format.", dateString)
End Try 
' The example displays the following output:
'    06/15/2008 converts to 6/15/2008 12:00:00 AM -07:00.
'    6/15/2008 is not in the correct format.
'    Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 8:30:00 AM -06:00.
'    Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.                     

Im folgenden Beispiel wird analysiert, ein Array von Zeichenfolgen, von denen erwartet entsprechen ISO 8601.The following example parses an array of strings that are expected to conform to ISO 8601. Wie die Ausgabe des Beispiels zeigt nicht Zeichenfolgen, die mit voran- oder nachgestellten Leerzeichen erfolgreich analysiert werden, wie Zeichenfolgen mit Datum und Uhrzeit-Elemente, die sich außerhalb des gültigen Bereichs befinden.As the output from the example shows, strings with leading or trailing spaces fail to parse successfully, as do strings with date and time elements that are out of range.

using System;

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.0000000Z ",
                               "2018-08-18T12:45:16.0000000+02:00",
                               "2018-08-18T12:45:16.0000000-07:00" }; 
      
      foreach (var dateString in dateStrings)
      {
         try {
            var date = DateTimeOffset.ParseExact(dateString, "O", null);
            Console.WriteLine($"{dateString,-35} --> {date:yyyy-MM-dd HH:mm:ss.FF zzz}");
         }
         catch (FormatException)
         {
            Console.WriteLine($"FormatException: Unable to convert '{dateString}'");
         }   

      } 
   }
}
// The example displays the following output:
//      2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
//      FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
//      FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
//      FormatException: 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
Public Module Example
   Public Sub Main()
      Dim dateStrings() As String = { "2018-08-18T12:45:16.0000000Z",
                                      "2018/08/18T12:45:16.0000000Z",
                                      "2018-18-08T12:45:16.0000000Z",
                                      " 2018-08-18T12:45:16.0000000Z ",
                                      "2018-08-18T12:45:16.0000000+02:00",
                                      "2018-08-18T12:45:16.0000000-07:00" } 
      
      For Each dateStr In dateStrings
         Try 
            Dim dat = DateTimeOffset.ParseExact(dateStr, "O", Nothing)
            Console.WriteLine($"{dateStr,-35} --> {dat:yyyy-MM-dd HH:mm:ss.FF zzz}")
         Catch  e As FormatException
            Console.WriteLine($"FormatException: Unable to convert '{dateStr}'")
         End Try   
      Next 
   End Sub
End Module
' The example displays the following output:
'      2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
'      FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
'      FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
'      FormatException: 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

Hinweise

Die ParseExact(String, String, IFormatProvider) -Methode analysiert die angegebene Zeichenfolgendarstellung eines Datums, der das Format von definiert sein muss die format Parameter.The ParseExact(String, String, IFormatProvider) method parses the string representation of a date, which must be in the format defined by the format parameter. Sie erfordert außerdem, dass die <Datum >, <Zeit >, und <Offset >-Elemente die Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe in der Reihenfolge gemäß format.It also requires that the <Date>, <Time>, and <Offset> elements of the string representation of a date and time appear in the order specified by format. Wenn die input Zeichenfolge stimmt nicht überein, dies format Parameter, löst die Methode eine FormatException.If the input string does not match this format parameter, the method throws a FormatException. Im Gegensatz dazu die DateTimeOffset.Parse(String, IFormatProvider) -Methode analysiert die angegebene Zeichenfolgendarstellung eines Datums in einem der Formate von des Formatanbieters erkannten DateTimeFormatInfo Objekt.In contrast, the DateTimeOffset.Parse(String, IFormatProvider) method parses the string representation of a date in any one of the formats recognized by the format provider's DateTimeFormatInfo object. Parse ermöglicht auch die <Datum >, <Zeit >, und <Offset > Elemente der Zeichenfolgendarstellung von Datum und Uhrzeit in beliebiger Reihenfolge angezeigt werden.Parse also allows the <Date>, <Time>, and <Offset> elements of the string representation of a date and time to appear in any order.

Die format Parameter ist eine Zeichenfolge, enthält entweder einen einzelnen standardbuild-Formatbezeichner oder ein oder mehrere benutzerdefinierte Formatbezeichner, die das erforderliche Format von definieren, die input Parameter.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 format of the input parameter. Ausführliche Informationen zu gültigen Formatierungscodes finden Sie unter Standardformatzeichenfolgen für Datum und Uhrzeit-Formatzeichenfolgen und Custom Date and Time Format Strings.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Wenn format enthält die z, zz, oder zzz benutzerdefinierte Formatbezeichner, um anzugeben, dass ein Offset in vorhanden sein muss input, dem Offset muss entweder ein negativen Vorzeichen oder ein positives Vorzeichen enthalten.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. Wenn die Anmeldung nicht vorhanden ist, löst die Methode eine FormatException.If the sign is missing, the method throws a FormatException.

Wenn format erfordert, dass input enthalten ein Datum, aber keine Uhrzeit enthält, wird die resultierende DateTimeOffset -Objekt zugewiesen ist eine Zeit von Mitternacht (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). Wenn format erfordert, dass input eine Uhrzeit, aber kein Datum enthält, wird die resultierende DateTimeOffset -Objekt das aktuelle Datum auf dem lokalen System zugewiesen ist.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. Wenn format ist nicht erforderlich, input einen Offset enthält, die resultierende DateTimeOffset -Objekt die angegebene Zeitzonenoffset der Zeitzone des lokalen Systems zugewiesen ist.If format does not require that input contain an offset, the resulting DateTimeOffset object is assigned the time zone offset of the local system.

Die bestimmtes Datum und Uhrzeit verwendeten Symbole und Zeichenfolgen input werden definiert, indem die formatProvider Parameter, wie das exakte der Format input Wenn format ist eine Standardformatzeichenfolge für Bezeichner.The particular date and time symbols and strings used in input are defined by the formatProvider parameter, as is the precise format of input if format is a standard format specifier string. Die formatProvider Parameter kann eine der folgenden sein:The formatProvider parameter can be either of the following:

Wenn formatprovider ist null, CultureInfo -Objekt, das der aktuellen Kultur entspricht, wird verwendet.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

Hinweise für Aufrufer

In der .NET Framework 4.NET Framework 4, ParseExact -Methode löst eine FormatException , wenn die zu analysierende Zeichenfolge enthält, eine Komponente für Stunden und eine AM/PM-Kennzeichner, die nicht in der Vereinbarung sind.In the .NET Framework 4.NET Framework 4, the ParseExact method throws a FormatException if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. In der .NET Framework 3,5.NET Framework 3.5 und frühere Versionen, die AM/PM-Kennzeichner wird ignoriert.In the .NET Framework 3,5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Siehe auch

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

Konvertiert einen Zeichenbereich mit der Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe unter Verwendung der Angaben über Format, kulturabhängige Formatierungsinformationen und Stil in den entsprechenden DateTimeOffset.Converts a character span that contains the string representation of a date and time to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. Das Format der Darstellung von Datum und Uhrzeit muss einem der angegebenen Formate genau entsprechen.The format of the date and time representation must match one of the specified formats exactly.

public static DateTimeOffset ParseExact (ReadOnlySpan<char> input, string[] formats, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
static member ParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function ParseExact (input As ReadOnlySpan(Of Char), formats As String(), formatProvider As IFormatProvider, Optional styles As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTimeOffset

Parameter

input
ReadOnlySpan<Char>

Ein Zeichenbereich, der die zu konvertierende Datums- und Zeitangabe enthält.A character span that contains a date and time to convert.

formats
String[]

Ein Array von Formatbezeichnern, die die erwarteten Formate von input definieren.An array of format specifiers that define the expected formats of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu input bereitstellt.An object that supplies culture-specific formatting information about input.

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

Eine bitweise Kombination von Enumerationswerten, die das zulässige Format von input angibt.A bitwise combination of enumeration values that indicates the permitted format of input.

Gibt zurück

Ein Objekt, das der im input-Parameter enthaltenen Datums- und Uhrzeitangabe nach den Angaben der Parameter formats, formatProvider und styles entspricht.An object that is equivalent to the date and time that is contained in the input parameter, as specified by the formats, formatProvider, and styles parameters.

Ausnahmen

Der Offset ist größer als 14 Stunden oder kleiner als -14 Stunden.The offset is greater than 14 hours or less than -14 hours.
oder styles enthält einen nicht unterstützten Wert.-or- styles includes an unsupported value.
- oder - -or-
Der styles-Parameter enthält DateTimeStyles-Werte, die nicht zusammen verwendet werden können.The styles parameter contains DateTimeStyles values that cannot be used together.

input ist einer leerer Zeichenbereich.input is an empty character span.
oder input enthält keine gültige Zeichenfolgendarstellung eines Datums und einer Uhrzeit.-or- input does not contain a valid string representation of a date and time.
- oder - -or-
Kein Element von formats enthält einen gültigen Formatbezeichner.No element of formats contains a valid format specifier.
- oder - -or-
Die Komponente für Stunden und der AM/PM-Kennzeichner in input stimmen nicht überein.The hour component and the AM/PM designator in input do not agree.

Hinweise

Diese Methode analysiert eine Zeichen Spanne, der ein Datum, das eine der zugewiesenen Muster entspricht der formats Parameter.This method parses a character span representing a date that matches any one of the patterns assigned to the formats parameter. Wenn input entspricht nicht eines dieser Muster, mit der Varianten von definiert die styles Parameter, löst die Methode eine FormatException.If input does not match any one of these patterns with any of the variations defined by the styles parameter, the method throws a FormatException. Abgesehen von Vergleichen input mit mehreren Formatierungsmustern, diese Überladung verhält sich genauso wie die DateTimeOffset.ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) Methode.Aside from comparing input to multiple formatting patterns, this overload behaves identically to the DateTimeOffset.ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) method.

Die formats -Parameter ist ein Zeichenfolgen-Array, dessen Elemente enthält, entweder einen einzelnen standardbuild-Formatbezeichner oder ein oder mehrere benutzerdefinierte Formatbezeichner, der das mögliche Muster von definieren, die input Parameter.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 the input parameter. Wenn die Methode aufgerufen wird, input muss einem der folgenden Muster übereinstimmen.When the method is called, input must match one of these patterns. Ausführliche Informationen zu gültigen Formatierungscodes finden Sie unter Standardformatzeichenfolgen für Datum und Uhrzeit-Formatzeichenfolgen und Custom Date and Time Format Strings.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Wenn das übereinstimmende Element im formats enthält die z, zz, oder zzz benutzerdefinierte Formatbezeichner, um anzugeben, dass ein Offset in vorhanden sein muss input, dem Offset muss entweder ein negativen Vorzeichen oder ein positives Vorzeichen enthalten.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. Wenn die Anmeldung nicht vorhanden ist, löst die Methode eine FormatException.If the sign is missing, the method throws a FormatException.

Wichtig

Mithilfe der formats Parameter dieser Überladung, die mehrere Formate angeben, kann Probleme der vermindert, die viele Benutzer beim Eingeben von Datumsangaben und Uhrzeiten auftreten.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. Insbesondere können Sie mehrere Eingabemuster definieren eine Anwendung zur Handhabung von Datums- und uhrzeitdarstellungen, die kann entweder ein- oder verfügen nicht über führende Nullen in Monaten, Tagen, Stunden, Minuten und Sekunden.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.

Wenn das übereinstimmende Element im formats erfordert, dass input enthalten ein Datum, aber keine Uhrzeit enthält, wird die resultierende DateTimeOffset -Objekt zugewiesen ist eine Zeit von Mitternacht (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). Wenn das übereinstimmende Element im formats erfordert, dass input eine Uhrzeit, aber kein Datum enthält, wird die resultierende DateTimeOffset -Objekt das aktuelle Datum auf dem lokalen System zugewiesen ist.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. Wenn das übereinstimmende Element im formats ist nicht erforderlich, input einen Offset enthält, die Abweichung des resultierenden DateTimeOffset Objekt abhängig ist, auf dem Wert der styles Parameter.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. Wenn styles enthält AssumeLocal, der Offset der lokalen Zeitzone zugewiesen ist die DateTimeOffset Objekt.If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. Wenn styles enthält AssumeUniversal, den Offset von Coordinated Universal Time (UTC) oder + 00:00, zugewiesen ist die DateTimeOffset Objekt.If styles includes AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. Wenn kein Wert angegeben wird, wird der Offset der lokalen Zeitzone verwendet.If neither value is specified, the offset of the local time zone is used.

Die bestimmtes Datum und Uhrzeit verwendeten Symbole und Zeichenfolgen input werden definiert, indem die formatProvider Parameter.The particular date and time symbols and strings used in input are defined by the formatProvider parameter. Das gleiche gilt für das exakte Format der input, wenn das entsprechende Element der formats ist eine Standardformatzeichenfolge Spezifizierer.The same is true for the precise format of input, if the matching element of formats is a standard format specifier string. Die formatProvider Parameter kann eine der folgenden sein:The formatProvider parameter can be either of the following:

Wenn formatprovider ist null, CultureInfo -Objekt, das der aktuellen Kultur entspricht, wird verwendet.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

Die styles Parameter definiert, ob Leerzeichen erlaubt, wird in der Eingabezeichenfolge, gibt an, wie Zeichenfolgen ohne eine explizite Offset-Komponente analysiert werden und unterstützt die UTC-Konvertierung als Teil des Analysevorgangs.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. Alle Mitglieder der DateTimeStyles Enumeration werden unterstützt, mit Ausnahme von NoCurrentDateDefault.All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. Die folgende Tabelle enthält die Auswirkungen der einzelnen unterstützten Mitglied.The following table lists the effect of each supported member.

DateTimeStyles -MemberDateTimeStyles member VerhaltenBehavior
AdjustToUniversal Analysiert input und, falls erforderlich, eine Konvertierung in UTC.Parses input and, if necessary, converts it to UTC. Dies ist äquivalent zum Analysieren einer Zeichenfolge und dem anschließenden Aufrufen der DateTimeOffset.ToUniversalTime -Methode der zurückgegebenen DateTimeOffset Objekt.It is equivalent to parsing a string, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal Wenn das übereinstimmende Element im formats ist nicht erforderlich, input enthalten einen Offset-Wert, der zurückgegebenen DateTimeOffset Objekt der Offset der lokalen Zeitzone zugewiesen.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. Dies ist der Standardwert.This is the default value.
AssumeUniversal Wenn das übereinstimmende Element im formats ist nicht erforderlich, input enthalten einen Offset-Wert, der zurückgegebenen DateTimeOffset Objekt erhält den UTC-Offset (+ 00:00 Uhr).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 Ermöglicht das input auf interne Leerzeichen nicht angegeben wird, durch Einfügen format.Allows input to include inner white space not specified by format. Zusätzliche Leerzeichen auftreten können, zwischen Datums- und Zeitkomponenten und innerhalb der einzelnen Komponenten (außer der Offset) und wird ignoriert, wenn die Zeichenfolge zu analysieren.Extra white space can appear between date and time components and within individual components (except the offset), and is ignored when parsing the string.
AllowLeadingWhite Ermöglicht das input zum Einschließen von führenden Leerzeichen nicht anhand des formats.Allows input to include leading spaces not specified by formats. Beim Analysieren der Zeichenfolge, werden diese ignoriert.These are ignored when parsing the string.
AllowTrailingWhite Ermöglicht das input sollen nachfolgende Leerzeichen nicht anhand des formats.Allows input to include trailing spaces not specified by formats. Beim Analysieren der Zeichenfolge, werden diese ignoriert.These are ignored when parsing the string.
AllowWhiteSpaces Ermöglicht das input einschließen vorangestellte, nachfolgende und innere Leerzeichen nicht anhand des formats.Allows input to include leading, trailing, and inner spaces not specified by formats. Alle zusätzlichen Leerzeichen nicht in das übereinstimmende Element im angegebenen formats beim Analysieren der Zeichenfolge werden ignoriert.All extra white-space characters not specified in the matched element in formats are ignored when parsing the string.
None Gibt an, dass zusätzliche Leerraum ist nicht zulässig input.Indicates that additional white space is not permitted in input. Leerraum muss angezeigt werden, genau wie angegeben in ein bestimmtes Element des formats für eine Übereinstimmung vorliegt.White space must appear exactly as specified in a particular element of formats for a match to occur. Dies ist das Standardverhalten.This is the default behavior.
RoundtripKind Hat keine Auswirkungen, da die DateTimeOffset Struktur enthält keine Kind Eigenschaft.Has no effect because the DateTimeOffset structure does not include a Kind property.

Gilt für: