Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
DateTime.ParseExact-Methode (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 DateTime. Das Format der Zeichenfolgenentsprechung muss dem angegebenen Format genau entsprechen.
Assembly: mscorlib (in mscorlib.dll)
public static DateTime ParseExact( string s, string format, IFormatProvider provider )
Parameter
- s
- Typ: System.String
Eine Zeichenfolge, die die zu konvertierende Datums- und Zeitangabe enthält.
- format
- Typ: System.String
Ein Formatbezeichner, der das erforderliche Format von s definiert.
- provider
- Typ: System.IFormatProvider
Ein Objekt, das kulturspezifische Formatinformationen zu s bereitstellt.
Rückgabewert
Typ: System.DateTimeEin Objekt, das der in s enthaltenen Datums- und Uhrzeitangabe nach den Angaben von format und provider entspricht.
| Ausnahme | Bedingung |
|---|---|
| ArgumentNullException |
s oder format ist null. |
| FormatException |
s oder format ist eine leere Zeichenfolge. – oder – s enthält kein Datum und keine Uhrzeit, die einem der in format angegebenen Muster entsprechen. – oder – Die Stundenkomponente und der AM/PM-Kennzeichner in s stimmen nicht überein. |
Die DateTime.ParseExact(String, String, IFormatProvider)-Methode analysiert die Zeichenfolgendarstellung eines Datums, die das durch den format-Parameter definierte Format aufweisen muss. Außerdem müssen die Elemente <Date> und <Time> der Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe in der von format angegebenen Reihenfolge aufgeführt werden, und s darf nur den Leerraum enthalten, der von format zugelassen wird. Wenn format ein Datum ohne Zeitelement definiert und die Analyseoperation erfolgreich ist, weist der daraus resultierende DateTime-Wert die Zeit Mitternacht (00:00:00) auf. Wenn format eine Zeit ohne Datumselement definiert und die Analyseoperation erfolgreich ist, weist der daraus resultierende DateTime-Wert das Datum DateTime.Now.Date auf.
Wenn s keine Uhrzeit in einer bestimmten Zeitzone darstellt und der Analysevorgang erfolgreich abgeschlossen wird, ist die Kind-Eigenschaft des zurückgegebenen DateTime-Werts DateTimeKind.Unspecified. Wenn s die Uhrzeit in einer bestimmten Zeitzone darstellt und format die Angabe von Zeitzoneninformationen zulässt (wenn format z. B. dem Standardformatbezeichner o, r oder u entspricht oder wenn die benutzerdefinierten Formatbezeichner z, zz oder zzz enthalten sind), ist die Kind-Eigenschaft des zurückgegebenen DateTime-Werts DateTimeKind.Local.
Der format-Parameter ist eine Zeichenfolge, die entweder einen einzelnen Standardformatbezeichner oder mindestens einen benutzerdefinierten Formatbezeichner enthält, der das erforderliche Format von s definiert. Ausführliche Informationen zu gültigen Formatierungscodes finden Sie unter Datums- und Uhrzeitstandardformatzeichenfolgen oder Benutzerdefinierte und DateTime-Formatzeichenfolgen.
Hinweis
|
|---|
|
Wenn format ein benutzerdefiniertes Formatmuster ist, das keine Datums- oder Uhrzeittrennzeichen enthält (z. B. "yyyyMMdd HHmm"), verwenden Sie die invariante Kultur für den provider-Parameter und die längste Form für die einzelnen benutzerdefinierten Formatbezeichner. Wenn Sie z. B. Stunden im Formatmuster angeben möchten, geben Sie die längere Form "HH" anstelle der kürzeren Form "H" an. |
Die in s verwendeten spezifischen Symbole und Zeichenfolgen für Datum und Uhrzeit (wie die Namen der Wochentage in einer bestimmten Sprache) werden vom provider-Parameter definiert, ebenso wie das exakte Format von s, wenn format eine standardmäßige Formatbezeichner-Zeichenfolge ist. Bei dem provider-Parameter kann es sich um eines der folgenden Elemente handeln:
-
Ein CultureInfo-Objekt, mit dem die Kultur zum Interpretieren von s dargestellt wird. Das von der DateTimeFormat-Eigenschaft zurückgegebene DateTimeFormatInfo-Objekt definiert die Symbole und die Formatierung in s.
-
Ein DateTimeFormatInfo-Objekt, das das Format von Datums- und Uhrzeitwerten definiert.
-
Eine benutzerdefinierte IFormatProvider-Implementierung, deren GetFormat-Methode entweder das CultureInfo-Objekt oder das DateTimeFormatInfo-Objekt zurückgibt, das Formatierungsinformationen bereitstellt.
Wenn provider den Wert null hat, wird das CultureInfo-Objekt verwendet, das der aktuellen Kultur entspricht.
Hinweise zu Aufrufern
In .NET Framework 4 löst die ParseExact-Methode FormatException aus, wenn die Zeichenfolge, die analysiert werden soll, eine Stundenkomponente und einen AM/PM-Kennzeichner enthält, die unvereinbar sind. In .NET Framework 3.5 und früheren Versionen wird der AM/PM-Kennzeichner ignoriert.
Im folgenden Beispiel wird die ParseExact-Methode veranschaulicht.
string dateString, format; DateTime result; CultureInfo provider = CultureInfo.InvariantCulture; // Parse date-only value with invariant culture. dateString = "06/15/2008"; format = "d"; try { result = DateTime.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 = DateTime.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 = DateTime.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 but 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 = DateTime.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); } dateString = "15/06/2008 08:30"; format = "g"; provider = new CultureInfo("fr-FR"); try { result = DateTime.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. // 6/15/2008 is not in the correct format. // Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 7:30:00 AM. // Sun 15 Jun 2008 8:30 AM -06 is not in the correct format. // 15/06/2008 08:30 converts to 6/15/2008 8:30:00 AM.
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Hinweis