DateTime.ParseExact DateTime.ParseExact DateTime.ParseExact DateTime.ParseExact Method

Definition

Konvertiert die angegebene Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe in die DateTime-Entsprechung.Converts the specified string representation of a date and time to its DateTime equivalent. Das Format der Zeichenfolgendarstellung muss einem bestimmten Format genau entsprechen. Andernfalls wird eine Ausnahme ausgelöst.The format of the string representation must match a specified format exactly or an exception is thrown.

Überlädt

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 DateTime.Converts the specified string representation of a date and time to its DateTime 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>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)
ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles)
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 DateTime.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Das Format der Zeichenfolgendarstellung muss dem angegebenen Format genau entsprechen. Andernfalls wird eine Ausnahme ausgelöst.The format of the string representation must match the specified format exactly or an exception is thrown.

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 des angegebenen Formatarrays, der kulturspezifischen Formatierungsinformationen und des Stils in die DateTime-Entsprechung.Converts the specified string representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Das Format der Zeichenfolgendarstellung muss mindestens einem der angegebenen Formate genau entsprechen. Andernfalls wird eine Ausnahme ausgelöst.The format of the string representation must match at least one of the specified formats exactly or an exception is thrown.

Hinweise

Wichtig

Die Zeitrechnung in japanischen Kalendern basiert auf den Regierungsperioden der Kaiser und wird sich daher erwartungsgemäß ändern.Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. Beispiel: Der 1. Mai 2019 markiert den Beginn des Reiwa-Zeitabschnitts in den Kalendern des Typs JapaneseCalendar und JapaneseLunisolarCalendar.For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Eine derartige Änderung der Zeitabschnitte betrifft alle Anwendungen, die diese Kalender verwenden.Such a change of era affects all applications that use these calendars. Unter Handling a new era in the Japanese calendar in .NET (Umgang mit einem neuen Zeitabschnitt im japanischen Kalender in .NET) finden Sie weiter Informationen und wie Sie bestimmen können, ob Ihre Anwendungen ebenfalls betroffen sind.See Handling a new era in the Japanese calendar in .NET for more information and to determine whether your applications are affected. Unter Prepare your application for the Japanese era change (Vorbereiten Ihrer Anwendung für die Änderung des Zeitabschnitts im japanischen Kalender) finden Sie Informationen zum Testen Ihrer Anwendungen auf Windows-Systemen, um deren Bereitschaft für die Änderung im Zeitabschnitt sicherzustellen.See Prepare your application for the Japanese era change for information on testing your applications on Windows systems to ensure their readiness for the era change. Unter Arbeiten mit Zeiträumen finden Sie Informationen zu Funktionen in .NET, die Kalender mit mehreren Zeitabschnitten unterstützen, sowie bewährte Vorgehensweisen bei der Arbeit mit solchen Kalendern.See Working with eras for features in .NET that support calendars with multiple eras and for best practices when working with calendars that support multiple eras.

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 DateTime.Converts the specified string representation of a date and time to its DateTime 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 DateTime ParseExact(System::String ^ s, System::String ^ format, IFormatProvider ^ provider);
public static DateTime ParseExact (string s, string format, IFormatProvider provider);
static member ParseExact : string * string * IFormatProvider -> DateTime
Public Shared Function ParseExact (s As String, format As String, provider As IFormatProvider) As DateTime

Parameter

s
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 erforderliche Format von s definiert.A format specifier that defines the required format of s. Weitere Informationen finden Sie im Abschnitt "Hinweise".For more information, see the Remarks section.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

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

Gibt zurück

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

Ausnahmen

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

- oder --or- s enthält keine Datum/Uhrzeit-Angabe, die dem im format angegebenen Muster entspricht.s does not contain a date and time that corresponds to the pattern specified in format.

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

Beispiele

Das folgende Beispiel veranschaulicht die ParseExact Methode.The following example demonstrates the ParseExact method.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      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);
      } 

      // Parse a date that includes seconds and milliseconds
      // by using the French (France) and invariant cultures.
      dateString = "18/08/2015 06:30:15.006542";
      format = "dd/MM/yyyy HH:mm:ss.ffffff";
      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.
//       18/08/2015 06:30:15.006542 converts to 8/18/2015 6:30:15 AM.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim dateString, format As String  
      Dim result As Date
      Dim provider As CultureInfo = CultureInfo.InvariantCulture

      ' Parse date-only value with invariant culture.
      dateString = "06/15/2008"
      format = "d"
      Try
         result = Date.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 = Date.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 = Date.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 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 = Date.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 a date string using the French (France) culture.
      dateString = "15/06/2008 08:30"
      format = "g"
      provider = New CultureInfo("fr-FR")
      Try
         result = Date.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 a date that includes seconds and milliseconds
      ' by using the French (France) and invariant cultures.
      dateString = "18/08/2015 06:30:15.006542"
      format = "dd/MM/yyyy HH:mm:ss.ffffff"
      Try
         result = Date.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
   End Sub
End Module
' 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.
'       18/08/2015 06:30:15.006542 converts to 8/18/2015 6:30:15 AM.

Hinweise

Die DateTime.ParseExact(String, String, IFormatProvider) -Methode analysiert die angegebene Zeichenfolgendarstellung eines Datums, der das Format von definiert sein muss die format Parameter.The DateTime.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 > und <Zeit > der Zeichenfolgendarstellung einer Datums-und Uhrzeitangabe in der vom angegebenen Reihenfolge angezeigt format, und dass s haben keine Leerstellen als einfache von erlaubtenformat.It also requires that the <Date> and <Time> elements of the string representation of a date and time appear in the order specified by format, and that s have no white space other than that permitted by format. Wenn format definiert ein Datum mit kein Zeitelement und die Analyse erfolgreich ist, die resultierende DateTime Wert hat eine Zeit von Mitternacht (00: 00:00).If format defines a date with no time element and the parse operation succeeds, the resulting DateTime value has a time of midnight (00:00:00). Wenn format definiert eine Uhrzeit mit Datumselement und die Analyse erfolgreich ist, die resultierende DateTime Wert hat ein DateTime.Now.Date.If format defines a time with no date element and the parse operation succeeds, the resulting DateTime value has a date of DateTime.Now.Date.

Wenn s nicht darstellen, die eine Uhrzeit in einer bestimmten Zeitzone und der Analysevorgang erfolgreich ist, wird die Kind -Eigenschaft des zurückgegebenen DateTime Wert DateTimeKind.Unspecified.If s does not represent a time in a particular time zone and the parse operation succeeds, the Kind property of the returned DateTime value is DateTimeKind.Unspecified. Wenn s stellt die Zeit in einer bestimmten Zeitzone dar und format Zeitzoneninformationen vorhanden sein können (z. B. wenn format entspricht der "o", "R" oder der Standardformatbezeichner "u", oder wenn sie das "Z", "Zz" und "Zzz" enthält. benutzerdefinierte Formatbezeichner), die Kind -Eigenschaft des zurückgegebenen DateTime Wert DateTimeKind.Local.If s does represent the time in a particular time zone and format allows time zone information to be present (for example, if format is equal to the "o", "r", or "u" standard format specifiers, or if it contains the "z", "zz", or "zzz" custom format specifiers), the Kind property of the returned DateTime value is DateTimeKind.Local.

Die format Parameter ist eine Zeichenfolge, enthält entweder einen einzelnen standardbuild-Formatbezeichner oder ein oder mehrere benutzerdefinierte Formatbezeichner, die definieren, das erforderliche Format von s.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 s. Ausführliche Informationen zu gültigen Formatierungscodes finden Sie unter Standardformatzeichenfolgen für Datum und Uhrzeit-Formatzeichenfolgen oder Custom Date and Time Format Strings.For details about valid formatting codes, see Standard Date and Time Format Strings or Custom Date and Time Format Strings.

Hinweis

Wenn format ist ein benutzerdefiniertes Formatmuster, die keine Datums- oder Uhrzeitwert Trennzeichen (z. B. "YyyyMMddHHmm") enthalten, für die invariante Kultur verwenden die provider Parameter und die längste Form von einzelnen benutzerdefinierten Formatbezeichner.If format is a custom format pattern that does not include date or time separators (such as "yyyyMMddHHmm"), use the invariant culture for the provider parameter and the widest form of each custom format specifier. Wenn Sie Stunden im Formatmuster angeben möchten, geben Sie z. B. die größere Form "HH", anstelle der kürzeren Form "H".For example, if you want to specify hours in the format pattern, specify the wider form, "HH", instead of the narrower form, "H".

Die und Zeit-Symbole und Zeichenfolgen für Datum (z. B. die Namen der Tage der Woche in einer bestimmten Sprache) in verwendet s werden definiert, indem die provider Parameter, ebenso wie das genaue Format der s Wenn format ist ein Standardformat Formatbezeichner-Zeichenfolge.The particular date and time symbols and strings (such as names of the days of the week in a particular language) used in s are defined by the provider parameter, as is the precise format of s if format is a standard format specifier string. Die provider Parameter kann eine der folgenden sein:The provider parameter can be any of the following:

Wenn provider ist null, CultureInfo -Objekt, das der aktuellen Kultur entspricht, wird verwendet.If provider 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>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

public static DateTime ParseExact (ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider provider, System.Globalization.DateTimeStyles style = System.Globalization.DateTimeStyles.None);
static member ParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function ParseExact (s As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), provider As IFormatProvider, Optional style As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTime

Parameter

format
ReadOnlySpan<Char>

Gibt zurück

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

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

Parameter

formats
String[]

Gibt zurück

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 DateTime.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Das Format der Zeichenfolgendarstellung muss dem angegebenen Format genau entsprechen. Andernfalls wird eine Ausnahme ausgelöst.The format of the string representation must match the specified format exactly or an exception is thrown.

public:
 static DateTime ParseExact(System::String ^ s, System::String ^ format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style);
public static DateTime ParseExact (string s, string format, IFormatProvider provider, System.Globalization.DateTimeStyles style);
static member ParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function ParseExact (s As String, format As String, provider As IFormatProvider, style As DateTimeStyles) As DateTime

Parameter

s
String String String String

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

format
String String String String

Ein Formatbezeichner, der das erforderliche Format von s definiert.A format specifier that defines the required format of s. Weitere Informationen finden Sie im Abschnitt "Hinweise".For more information, see the Remarks section.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

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

style
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

Eine bitweise Kombination der Enumerationswerte, die zusätzliche Informationen über s, über in s möglicherweise vorhandene Stilelementen oder über die Konvertierung von s in einen DateTime-Wert bereitstellt.A bitwise combination of the enumeration values that provides additional information about s, about style elements that may be present in s, or about the conversion from s to a DateTime value. Ein häufig angegebener Wert ist None.A typical value to specify is None.

Gibt zurück

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

Ausnahmen

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

- oder --or- s enthält keine Datum/Uhrzeit-Angabe, die dem im format angegebenen Muster entspricht.s does not contain a date and time that corresponds to the pattern specified in format.

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

style enthält eine ungültige Kombination von DateTimeStyles-Werten.style contains an invalid combination of DateTimeStyles values. Beispielsweise sowohl AssumeLocal als auch AssumeUniversal.For example, both AssumeLocal and AssumeUniversal.

Beispiele

Das folgende Beispiel veranschaulicht die ParseExact(String, String, IFormatProvider) Methode.The following example demonstrates the ParseExact(String, String, IFormatProvider) method. Beachten Sie, dass die Zeichenfolge "5/01/2009 8:30 Uhr" nicht erfolgreich analysiert werden bei der styles entspricht DateTimeStyles.None da Leerzeichen nicht zulässig sind format.Note that the string " 5/01/2009 8:30 AM" cannot be parsed successfully when the styles parameter equals DateTimeStyles.None because leading spaces are not allowed by format. Darüber hinaus die Zeichenfolge "5/01/2009 09:00 Uhr" nicht erfolgreich analysiert werden, mit einer format von "MM/TT/Yyyyhh:mm", da die nicht die Zahl mit führender Null an, für den Monat als Datumszeichenfolge format erfordert.Additionally, the string "5/01/2009 09:00" cannot be parsed successfully with a format of "MM/dd/yyyyhh:mm" because the date string does not precede the month number with a leading zero, as format requires.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      CultureInfo enUS = new CultureInfo("en-US"); 
      string dateString;
      DateTime dateValue;
      
      // Parse date with no style flags.
      dateString = " 5/01/2009 8:30 AM";
      try {
         dateValue = DateTime.ParseExact(dateString, "g", enUS, DateTimeStyles.None);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      }                           
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }
      // Allow a leading space in the date string.
      try {
         dateValue = DateTime.ParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      }                           
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }
      
      // Use custom formats with M and MM.
      dateString = "5/01/2009 09:00";
      try {
         dateValue = DateTime.ParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      }                           
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }
      // Allow a leading space in the date string.
      try {
         dateValue = DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      }                           
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }

      // Parse a string with time zone information.
      dateString = "05/01/2009 01:30:42 PM -05:00"; 
      try {
         dateValue = DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      }                           
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }
      // Allow a leading space in the date string.
      try {
         dateValue = DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, 
                                     DateTimeStyles.AdjustToUniversal);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      }                           
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }
           
      // Parse a string representing UTC.
      dateString = "2008-06-11T16:11:20.0904778Z";
      try {
         dateValue = DateTime.ParseExact(dateString, "o", CultureInfo.InvariantCulture, 
                                     DateTimeStyles.None);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      }                           
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }
      try {
         dateValue = DateTime.ParseExact(dateString, "o", CultureInfo.InvariantCulture, 
                                     DateTimeStyles.RoundtripKind);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      }                           
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }
   }
}
// The example displays the following output:
//    ' 5/01/2009 8:30 AM' is not in an acceptable format.
//    Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
//    Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
//    '5/01/2009 09:00' is not in an acceptable format.
//    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
//    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
//    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
//    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim enUS As New CultureInfo("en-US") 
      Dim dateString As String
      Dim dateValue As Date
      
      ' Parse date with no style flags.
      dateString = " 5/01/2009 8:30 AM"
      Try
         dateValue = Date.ParseExact(dateString, "g", enUS, DateTimeStyles.None)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
      ' Allow a leading space in the date string.
      Try
         dateValue = Date.ParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
      
      ' Use custom formats with M and MM.
      dateString = "5/01/2009 09:00"
      Try
         dateValue = Date.ParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
      ' Allow a leading space in the date string.
      Try
         dateValue = Date.ParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try

      ' Parse a string with time zone information.
      dateString = "05/01/2009 01:30:42 PM -05:00" 
      Try
         dateValue = Date.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
      ' Allow a leading space in the date string.
      Try
         dateValue = Date.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
                                     DateTimeStyles.AdjustToUniversal)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
           
      ' Parse a string representing UTC.
      dateString = "2008-06-11T16:11:20.0904778Z"
      Try
         dateValue = Date.ParseExact(dateString, "o", CultureInfo.InvariantCulture, _
                                     DateTimeStyles.None)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
      Try
         dateValue = Date.ParseExact(dateString, "o", CultureInfo.InvariantCulture, _
                                     DateTimeStyles.RoundtripKind)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
   End Sub
End Module
' The example displays the following output:
'    ' 5/01/2009 8:30 AM' is not in an acceptable format.
'    Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
'    Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
'    '5/01/2009 09:00' is not in an acceptable format.
'    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
'    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
'    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
'    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).

Hinweise

Die DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) -Methode analysiert die angegebene Zeichenfolgendarstellung eines Datums, der in einem Format, das durch definiert sein muss die format Parameter.The DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) method parses the string representation of a date, which must be in a format defined by the format parameter. Sie erfordert außerdem, dass die Datums- und Uhrzeitelemente in s werden in der Reihenfolge gemäß format.It also requires that the date and time elements in s appear in the order specified by format. Wenn s entspricht nicht das Muster der format -Parameter mit allen Varianten von definiert die style Parameter, löst die Methode eine FormatException.If s does not match the pattern of the format parameter, with any variations defined by the style parameter, the method throws a FormatException. Im Gegensatz dazu die DateTime.Parse(String, IFormatProvider, DateTimeStyles) -Methode analysiert die angegebene Zeichenfolgendarstellung eines Datums in einem der Formate von des Formatanbieters erkannten DateTimeFormatInfo Objekt.In contrast, the DateTime.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. Die DateTime.Parse(String, IFormatProvider, DateTimeStyles) -Methode berücksichtigt auch die Datums- und Uhrzeitelemente in s in beliebiger Reihenfolge angezeigt werden.The DateTime.Parse(String, IFormatProvider, DateTimeStyles) method also allows the date and time elements in s to appear in any order.

Wenn die s -Parameter enthält nur eine Uhrzeit aus, und kein Datum, an das aktuelle Datum verwendet wird, wenn die style Parameter enthält die DateTimeStyles.NoCurrentDateDefault kennzeichnen, in diesem Fall das Standarddatum (DateTime.Date.MinValue) verwendet wird.If the s parameter contains only a time and no date, the current date is used unless the style parameter includes the DateTimeStyles.NoCurrentDateDefault flag, in which case the default date (DateTime.Date.MinValue) is used. Wenn die s -Parameter enthält nur ein Datum und keine Uhrzeit, Mitternacht (00: 00:00) verwendet wird.If the s parameter contains only a date and no time, midnight (00:00:00) is used. Die style Parameter auch bestimmt, ob die s Parameter kann die führende, innere oder nachgestellten Leerzeichen enthalten.The style parameter also determines whether the s parameter can contain leading, inner, or trailing white space characters.

Wenn s keine Zeitzoneninformationen enthält die Kind -Eigenschaft des zurückgegebenen DateTime Objekt DateTimeKind.Unspecified.If s contains no time zone information, the Kind property of the returned DateTime object is DateTimeKind.Unspecified. Dieses Verhalten kann geändert werden, mithilfe der DateTimeStyles.AssumeLocal flag, gibt eine DateTime , deren Wert Kind -Eigenschaft ist DateTimeKind.Local, oder mithilfe der DateTimeStyles.AssumeUniversal und DateTimeStyles.AdjustToUniversal gekennzeichnet wird, gibt eine DateTime , deren Wert Kind Eigenschaft DateTimeKind.Utc.This behavior can be changed by using the DateTimeStyles.AssumeLocal flag, which returns a DateTime value whose Kind property is DateTimeKind.Local, or by using the DateTimeStyles.AssumeUniversal and DateTimeStyles.AdjustToUniversal flags, which returns a DateTime value whose Kind property is DateTimeKind.Utc. Wenn s Zeitzoneninformationen, enthält die Zeit wird in Ortszeit, konvertiert, falls erforderlich, und die Kind -Eigenschaft des zurückgegebenen DateTime Objekt nastaven NA hodnotu DateTimeKind.Local.If s contains time zone information, the time is converted to local time, if necessary, and the Kind property of the returned DateTime object is set to DateTimeKind.Local. Dieses Verhalten kann geändert werden, mithilfe der DateTimeStyles.RoundtripKind Flag Coordinated Universal Time (UTC) nicht in die lokale Zeit konvertieren und Festlegen der Kind Eigenschaft DateTimeKind.Utc.This behavior can be changed by using the DateTimeStyles.RoundtripKind flag to not convert Coordinated Universal Time (UTC) to a local time and to set the Kind property to DateTimeKind.Utc.

Die format Parameter definiert das erforderliche Muster von den s Parameter.The format parameter defines the required pattern of the s parameter. Sie können aus einem oder mehreren benutzerdefinierten Formatbezeichnern aus bestehen die Custom Date and Time Format Strings Tabelle oder einen einzelnen standardbuild-Formatbezeichner, der ein vordefinierten Muster bezeichnet die Standardformatzeichenfolgen für Datum und Uhrzeit-Formatzeichenfolgen Tabelle.It can consist of either one or more custom format specifiers from the Custom Date and Time Format Strings table, or a single standard format specifier, which identifies a predefined pattern, from the Standard Date and Time Format Strings table.

Wenn Sie nicht in ein benutzerdefiniertes Formatmuster Datums- oder Uhrzeitwert Trennzeichen verwenden, verwenden Sie die invariante Kultur für die provider Parameter und die längste Form von einzelnen benutzerdefinierten Formatbezeichner.If you do not use date or time separators in a custom format pattern, use the invariant culture for the provider parameter and the widest form of each custom format specifier. Wenn Sie Stunden im Muster angeben möchten, geben Sie z. B. die größere Form "HH", anstelle der kürzeren Form "H".For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

Hinweis

Statt, muss s entsprechen, die in ein einzelnes Format, damit der Analysevorgang erfolgreich ist, rufen Sie die DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) Methode, und geben Sie mehrere zulässige Formate.Rather than requiring that s conform to a single format for the parse operation to succeed, you can call the DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) method and specify multiple permitted formats. Dadurch wird den größere Erfolgsaussichten Analysevorgang.This makes the parse operation more likely to succeed.

Die styles Parameter enthält einen oder mehrere Mitglieder der DateTimeStyles Enumeration, die bestimmen, ob und wo Leerzeichen nicht definiert format in angezeigt werden können s sowie steuern, das genaue Verhalten des Analysevorgangs.The styles parameter includes one or more members of the DateTimeStyles enumeration that determine whether and where white space not defined by format can appear in s and that control the precise behavior of the parse operation. In der folgende Tabelle wird beschrieben, wie die einzelnen Member der DateTimeStyles Enumeration wirkt sich auf den Betrieb der ParseExact(String, String, IFormatProvider, DateTimeStyles) Methode.The following table describes how each member of the DateTimeStyles enumeration affects the operation of the ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

DateTimeStyles-ElementDateTimeStyles member BeschreibungDescription
AdjustToUniversal Analysiert s und, falls erforderlich, eine Konvertierung in UTC.Parses s and, if necessary, converts it to UTC. Wenn s einen Zeitzonenoffset umfasst oder wenn s enthält keine Zeitzoneninformationen aber styles enthält die DateTimeStyles.AssumeLocal Flag, das die Methode analysiert die Zeichenfolge, ruft ToUniversalTime zurückgegebenen konvertieren DateTime Wert in UTC , und legt die Kind Eigenschaft DateTimeKind.Utc.If s includes a time zone offset, or if s contains no time zone information but styles includes the DateTimeStyles.AssumeLocal flag, the method parses the string, calls ToUniversalTime to convert the returned DateTime value to UTC, and sets the Kind property to DateTimeKind.Utc. Wenn s gibt an, dass es sich um UTC, darstellt oder wenn s enthält keine Informationen zur Zeitzone aber styles enthält die DateTimeStyles.AssumeUniversal Flag Methode analysiert die Zeichenfolge, die keine zeitzonenkonvertierung ausführt, für das zurückgegebene DateTime Wert und legt die Kind Eigenschaft DateTimeKind.Utc.If s indicates that it represents UTC, or if s does not contain time zone information but styles includes the DateTimeStyles.AssumeUniversal flag, the method parses the string, performs no time zone conversion on the returned DateTime value, and sets the Kind property to DateTimeKind.Utc. In allen anderen Fällen hat das Flag keine Auswirkungen.In all other cases, the flag has no effect.
AllowInnerWhite Gibt an, dass Leerraum nicht vom definiert format können zwischen den einzelnen Datums- oder Zeitelement angezeigt werden.Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite Gibt an, dass Leerraum nicht vom definiert format stehen am Anfang des s.Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite Gibt an, dass Leerraum nicht vom definiert format können angezeigt werden, am Ende der s.Specifies that white space not defined by format can appear at the end of s.
AllowWhiteSpaces Gibt an, dass s darf führenden, inneren und nachfolgende Leerstellen, die nicht vom definiert format.Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
AssumeLocal Gibt an, dass bei s verfügt nicht über alle Zeitzoneninformationen, es wird davon ausgegangen, um eine lokale Zeit darzustellen.Specifies that if s lacks any time zone information, it is assumed to represent a local time. Wenn die DateTimeStyles.AdjustToUniversal Flag vorhanden ist, ist die Kind -Eigenschaft des zurückgegebenen DateTime Wert wird festgelegt, um DateTimeKind.Local.Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal Gibt an, dass bei s verfügt nicht über alle Zeitzoneninformationen, es wird davon ausgegangen, um die UTC darzustellen.Specifies that if s lacks any time zone information, it is assumed to represent UTC. Wenn die DateTimeStyles.AdjustToUniversal Flag vorhanden ist, wird die Methode konvertiert die zurückgegebene DateTime Wert zwischen UTC und Ortszeit und legt seine Kind Eigenschaft DateTimeKind.Local.Unless the DateTimeStyles.AdjustToUniversal flag is present, the method converts the returned DateTime value from UTC to local time and sets its Kind property to DateTimeKind.Local.
NoCurrentDateDefault Wenn s enthält Zeit ohne Datumsinformationen, das Datum des Rückgabewerts festgelegt ist, um DateTime.MinValue.Date.If s contains time without date information, the date of the return value is set to DateTime.MinValue.Date.
None Die s Parameter wird unter Verwendung von Standardwerten analysiert.The s parameter is parsed using default values. Keine Leerstellen als einfache, vorhanden im format ist zulässig.No white space other than that present in format is allowed. Wenn s eine Datumskomponente, das Datum des zurückgegebenen DateTime Wert auf 1/1/0001 festgelegt wird.If s lacks a date component, the date of the returned DateTime value is set to 1/1/0001. Wenn s keine Zeitzoneninformationen enthält die Kind -Eigenschaft des zurückgegebenen DateTime Objekt nastaven NA hodnotu DateTimeKind.Unspecified.If s contains no time zone information, the Kind property of the returned DateTime object is set to DateTimeKind.Unspecified. Wenn Informationen zur Zeitzone in vorhanden ist s, die Uhrzeit wird in die Ortszeit konvertiert und die Kind -Eigenschaft des zurückgegebenen DateTime Objekt nastaven NA hodnotu DateTimeKind.Local.If time zone information is present in s, the time is converted to local time and the Kind property of the returned DateTime object is set to DateTimeKind.Local.
RoundtripKind Für Zeichenfolgen, die Zeitzoneninformationen enthalten wird versucht, um zu verhindern, dass die Konvertierung in einen DateTime Wert von Datum und die Uhrzeit mit der Kind -Eigenschaftensatz auf DateTimeKind.Local.For strings that contain time zone information, tries to prevent the conversion to a DateTime value date and time with its Kind property set to DateTimeKind.Local. Dieses Flag wird in erster Linie verhindert, dass die Konvertierung der UTC-Zeit, die lokalen Zeiten.This flag primarily prevents the conversion of UTC times to local times.

Die und Zeit-Symbole und Zeichenfolgen für Datum (z. B. die Namen der Tage der Woche in einer bestimmten Sprache) in verwendet s werden definiert, indem die provider Parameter, ebenso wie das genaue Format der s Wenn format ist ein Standardformat Formatbezeichner-Zeichenfolge.The particular date and time symbols and strings (such as the names of the days of the week in a particular language) used in s are defined by the provider parameter, as is the precise format of s if format is a standard format specifier string. Die provider Parameter kann eine der folgenden sein:The provider parameter can be any of the following:

Wenn provider ist null, CultureInfo -Objekt, das der aktuellen Kultur entspricht, wird verwendet.If provider 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(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 des angegebenen Formatarrays, der kulturspezifischen Formatierungsinformationen und des Stils in die DateTime-Entsprechung.Converts the specified string representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Das Format der Zeichenfolgendarstellung muss mindestens einem der angegebenen Formate genau entsprechen. Andernfalls wird eine Ausnahme ausgelöst.The format of the string representation must match at least one of the specified formats exactly or an exception is thrown.

public:
 static DateTime ParseExact(System::String ^ s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style);
public static DateTime ParseExact (string s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style);
static member ParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function ParseExact (s As String, formats As String(), provider As IFormatProvider, style As DateTimeStyles) As DateTime

Parameter

s
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 mit den zulässigen Formaten von s.An array of allowable formats of s. Weitere Informationen finden Sie im Abschnitt "Hinweise".For more information, see the Remarks section.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

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

style
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

Eine bitweise Kombination von Enumerationswerten, die das zulässige Format von s angibt.A bitwise combination of enumeration values that indicates the permitted format of s. Ein häufig angegebener Wert ist None.A typical value to specify is None.

Gibt zurück

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

Ausnahmen

s ist eine leere Zeichenfolge.s is an empty string.

- oder --or- Ein Element von formats ist eine leere Zeichenfolge.an element of formats is an empty string.

- oder --or- s enthält keine Datum/Uhrzeit-Angabe, die einem Element von formats entspricht.s does not contain a date and time that corresponds to any element of formats.

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

style enthält eine ungültige Kombination von DateTimeStyles-Werten.style contains an invalid combination of DateTimeStyles values. Beispielsweise sowohl AssumeLocal als auch AssumeUniversal.For example, both AssumeLocal and AssumeUniversal.

Beispiele

Im folgenden Beispiel wird die DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) Methode, um sicherzustellen, dass eine Zeichenfolge in eine Anzahl von möglichen Formate erfolgreich analysiert werden kann.The following example uses the DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) method to ensure that a string in a number of possible formats can be successfully parsed .

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", 
                         "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", 
                         "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", 
                         "M/d/yyyy h:mm", "M/d/yyyy h:mm", 
                         "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm",
                         "MM/d/yyyy HH:mm:ss.ffffff" };
      string[] dateStrings = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", 
                              "5/1/2009 6:32:00", "05/01/2009 06:32", 
                              "05/01/2009 06:32:00 PM", "05/01/2009 06:32:00",
                              "08/28/2015 16:17:39.125", "08/28/2015 16:17:39.125000" };
      DateTime dateValue;
      
      foreach (string dateString in dateStrings)
      {
         try {
            dateValue = DateTime.ParseExact(dateString, formats, 
                                            new CultureInfo("en-US"), 
                                            DateTimeStyles.None);
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
         }
         catch (FormatException) {
            Console.WriteLine("Unable to convert '{0}' to a date.", dateString);
         }                                               
      }
   }
}
// The example displays the following output:
//       Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
//       Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
//       Unable to convert '08/28/2015 16:17:39.125' to a date.
//       Converted '08/28/2015 16:17:39.125000' to 8/28/2015 4:17:39 PM.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim formats() As String = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", _
                                 "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", _
                                 "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", _
                                 "M/d/yyyy h:mm", "M/d/yyyy h:mm", _
                                 "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm",
                                 "MM/d/yyyy HH:mm:ss.ffffff" }
      Dim dateStrings() As String = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", _
                                     "5/1/2009 6:32:00", "05/01/2009 06:32", _
                                     "05/01/2009 06:32:00 PM", "05/01/2009 06:32:00",
                                     "08/28/2015 16:17:39.125", "08/28/2015 16:17:39.125000" }

      Dim dateValue As DateTime
      
      For Each dateString As String In dateStrings
         Try
            dateValue = DateTime.ParseExact(dateString, formats, _
                                            New CultureInfo("en-US"), _
                                            DateTimeStyles.None)
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue)
         Catch e As FormatException
            Console.WriteLine("Unable to convert '{0}' to a date.", dateString)
         End Try                                               
      Next
   End Sub
End Module
' The example displays the following output:
'       Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
'       Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
'       Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
'       Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
'       Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
'       Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
'       Unable to convert '08/28/2015 16:17:39.125' to a date.
'       Converted '08/28/2015 16:17:39.125000' to 8/28/2015 4:17:39 PM.

Hinweise

Die DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) -Methode analysiert die angegebene Zeichenfolgendarstellung eines Datums, der eine der zugewiesenen Muster entspricht der formats Parameter.The DateTime.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 Zeichenfolge s entspricht nicht eines dieser Muster, mit der Varianten von definiert die styles Parameter, löst die Methode eine FormatException.If the string s 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 s mit mehreren Formatierungsmustern, statt auf einem einzelnen Formatierungsmuster, diese Überladung verhält sich genauso wie die DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) Methode.Aside from comparing s to multiple formatting patterns, rather than to a single formatting pattern, this overload behaves identically to the DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

Die s Parameter enthält das Datum und Uhrzeit, zu analysieren.The s parameter contains the date and time to parse. Wenn die s -Parameter enthält nur eine Uhrzeit aus, und kein Datum, an das aktuelle Datum verwendet wird, wenn die style Parameter enthält die DateTimeStyles.NoCurrentDateDefault kennzeichnen, in diesem Fall das Standarddatum (DateTime.Date.MinValue) verwendet wird.If the s parameter contains only a time and no date, the current date is used unless the style parameter includes the DateTimeStyles.NoCurrentDateDefault flag, in which case the default date (DateTime.Date.MinValue) is used. Wenn die s -Parameter enthält nur ein Datum und keine Uhrzeit, Mitternacht (00: 00:00) verwendet wird.If the s parameter contains only a date and no time, midnight (00:00:00) is used. Die style Parameter auch bestimmt, ob die s Parameter kann führende enthalten, auch andere als die nicht den von der die Formatzeichenfolgen im inneren oder nachstehende Leerzeichen Zeichen formats.The style parameter also determines whether the s parameter can contain leading, inner, or trailing white space characters other than those permitted by one of the format strings in formats.

Wenn s keine Zeitzoneninformationen enthält die Kind -Eigenschaft des zurückgegebenen DateTime Objekt DateTimeKind.Unspecified.If s contains no time zone information, the Kind property of the returned DateTime object is DateTimeKind.Unspecified. Dieses Verhalten kann geändert werden, mithilfe der DateTimeStyles.AssumeLocal flag, gibt eine DateTime , deren Wert Kind -Eigenschaft ist DateTimeKind.Local, oder mithilfe der DateTimeStyles.AssumeUniversal und DateTimeStyles.AdjustToUniversal gekennzeichnet wird, gibt eine DateTime , deren Wert Kind Eigenschaft DateTimeKind.Utc.This behavior can be changed by using the DateTimeStyles.AssumeLocal flag, which returns a DateTime value whose Kind property is DateTimeKind.Local, or by using the DateTimeStyles.AssumeUniversal and DateTimeStyles.AdjustToUniversal flags, which returns a DateTime value whose Kind property is DateTimeKind.Utc. Wenn s Zeitzoneninformationen, enthält die Zeit wird in Ortszeit, konvertiert, falls erforderlich, und die Kind -Eigenschaft des zurückgegebenen DateTime Objekt nastaven NA hodnotu DateTimeKind.Local.If s contains time zone information, the time is converted to local time, if necessary, and the Kind property of the returned DateTime object is set to DateTimeKind.Local. Dieses Verhalten kann geändert werden, mithilfe der DateTimeStyles.RoundtripKind Flag nicht Coordinated Universal Time (UTC) in eine lokale Zeit konvertieren und Festlegen der Kind Eigenschaft DateTimeKind.Utc.This behavior can be changed by using the DateTimeStyles.RoundtripKind flag to not convert Coordinated Universal Time (UTC) to a local time and set the Kind property to DateTimeKind.Utc.

Die formats -Parameter enthält ein Array von Mustern verwenden, von denen s übereinstimmen, genau, wenn der Analysevorgang erfolgreich ist.The formats parameter contains an array of patterns, one of which s must match exactly if the parse operation is to succeed. Die Muster in den formats -Parameter besteht aus einem oder mehreren benutzerdefinierten Formatbezeichnern aus der Custom Date and Time Format Strings Tabelle oder einen einzelnen standardbuild-Formatbezeichner, der ein vordefinierten Muster bezeichnet die Standardformatzeichenfolgen für Datum und Uhrzeit-Formatzeichenfolgen Tabelle.The patterns in the formats parameter consists of one or more custom format specifiers from the Custom Date and Time Format Strings table, or a single standard format specifier, which identifies a predefined pattern, from the Standard Date and Time Format Strings table.

Wenn Sie nicht in ein benutzerdefiniertes Formatmuster Datums- oder Uhrzeitwert Trennzeichen verwenden, verwenden Sie die invariante Kultur für die provider Parameter und die längste Form von einzelnen benutzerdefinierten Formatbezeichner.If you do not use date or time separators in a custom format pattern, use the invariant culture for the provider parameter and the widest form of each custom format specifier. Wenn Sie Stunden im Muster angeben möchten, geben Sie z. B. die größere Form "HH", anstelle der kürzeren Form "H".For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

Die styles Parameter enthält einen oder mehrere Mitglieder der DateTimeStyles Enumeration, die bestimmen, ob und wo Leerzeichen nicht definiert format in angezeigt werden können s sowie steuern, das genaue Verhalten des Analysevorgangs.The styles parameter includes one or more members of the DateTimeStyles enumeration that determine whether and where white space not defined by format can appear in s and that control the precise behavior of the parse operation. In der folgende Tabelle wird beschrieben, wie die einzelnen Member der DateTimeStyles Enumeration wirkt sich auf den Betrieb der ParseExact(String, String, IFormatProvider, DateTimeStyles) Methode.The following table describes how each member of the DateTimeStyles enumeration affects the operation of the ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

DateTimeStyles-ElementDateTimeStyles member BeschreibungDescription
AdjustToUniversal Analysiert s und, falls erforderlich, eine Konvertierung in UTC.Parses s and, if necessary, converts it to UTC. Wenn s einen Zeitzonenoffset umfasst oder wenn s enthält keine Zeitzoneninformationen aber styles enthält die DateTimeStyles.AssumeLocal Flag, das die Methode analysiert die Zeichenfolge, ruft ToUniversalTime zurückgegebenen konvertieren DateTime Wert in UTC , und legt die Kind Eigenschaft DateTimeKind.Utc.If s includes a time zone offset, or if s contains no time zone information but styles includes the DateTimeStyles.AssumeLocal flag, the method parses the string, calls ToUniversalTime to convert the returned DateTime value to UTC, and sets the Kind property to DateTimeKind.Utc. Wenn s gibt an, dass es sich um UTC, darstellt oder wenn s enthält keine Informationen zur Zeitzone aber styles enthält die DateTimeStyles.AssumeUniversal Flag Methode analysiert die Zeichenfolge, die keine zeitzonenkonvertierung ausführt, für das zurückgegebene DateTime Wert und legt die Kind Eigenschaft DateTimeKind.Utc.If s indicates that it represents UTC, or if s does not contain time zone information but styles includes the DateTimeStyles.AssumeUniversal flag, the method parses the string, performs no time zone conversion on the returned DateTime value, and sets the Kind property to DateTimeKind.Utc. In allen anderen Fällen hat das Flag keine Auswirkungen.In all other cases, the flag has no effect.
AllowInnerWhite Gibt an, dass Leerraum nicht vom definiert format können zwischen den einzelnen Datums- oder Zeitelement angezeigt werden.Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite Gibt an, dass Leerraum nicht vom definiert format stehen am Anfang des s.Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite Gibt an, dass Leerraum nicht vom definiert format können angezeigt werden, am Ende der s.Specifies that white space not defined by format can appear at the end of s.
AllowWhiteSpaces Gibt an, dass s darf führenden, inneren und nachfolgende Leerstellen, die nicht vom definiert format.Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
AssumeLocal Gibt an, dass bei s verfügt nicht über alle Zeitzoneninformationen, es wird davon ausgegangen, um eine lokale Zeit darzustellen.Specifies that if s lacks any time zone information, it is assumed to represent a local time. Wenn die DateTimeStyles.AdjustToUniversal Flag vorhanden ist, ist die Kind -Eigenschaft des zurückgegebenen DateTime Wert wird festgelegt, um DateTimeKind.Local.Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal Gibt an, dass bei s verfügt nicht über alle Zeitzoneninformationen, es wird davon ausgegangen, um die UTC darzustellen.Specifies that if s lacks any time zone information, it is assumed to represent UTC. Wenn die DateTimeStyles.AdjustToUniversal Flag vorhanden ist, wird die Methode konvertiert die zurückgegebene DateTime Wert zwischen UTC und Ortszeit und legt seine Kind Eigenschaft DateTimeKind.Local.Unless the DateTimeStyles.AdjustToUniversal flag is present, the method converts the returned DateTime value from UTC to local time and sets its Kind property to DateTimeKind.Local.
NoCurrentDateDefault Wenn s enthält Zeit ohne Datumsinformationen, das Datum des Rückgabewerts festgelegt ist, um DateTime.MinValue.Date.If s contains time without date information, the date of the return value is set to DateTime.MinValue.Date.
None Die s Parameter wird unter Verwendung von Standardwerten analysiert.The s parameter is parsed using default values. Keine Leerstellen als einfache, vorhanden im format ist zulässig.No white space other than that present in format is allowed. Wenn s eine Datumskomponente, das Datum des zurückgegebenen DateTime Wert auf 1/1/0001 festgelegt wird.If s lacks a date component, the date of the returned DateTime value is set to 1/1/0001. Wenn s keine Zeitzoneninformationen enthält die Kind -Eigenschaft des zurückgegebenen DateTime Objekt nastaven NA hodnotu DateTimeKind.Unspecified.If s contains no time zone information, the Kind property of the returned DateTime object is set to DateTimeKind.Unspecified. Wenn Informationen zur Zeitzone in vorhanden ist s, die Uhrzeit wird in die Ortszeit konvertiert und die Kind -Eigenschaft des zurückgegebenen DateTime Objekt nastaven NA hodnotu DateTimeKind.Local.If time zone information is present in s, the time is converted to local time and the Kind property of the returned DateTime object is set to DateTimeKind.Local.
RoundtripKind Für Zeichenfolgen, die Zeitzoneninformationen enthalten wird versucht, um zu verhindern, dass die Konvertierung in ein Datum und Zeit mit seiner Kind -Eigenschaftensatz auf DateTimeKind.Local.For strings that contain time zone information, tries to prevent the conversion to a date and time with its Kind property set to DateTimeKind.Local. Dieses Flag wird in erster Linie verhindert, dass die Konvertierung der UTC-Zeit, die lokalen Zeiten.This flag primarily prevents the conversion of UTC times to local times.

Die und Zeit-Symbole und Zeichenfolgen für Datum (z. B. die Namen der Tage der Woche in einer bestimmten Sprache) in verwendet s werden definiert, indem die provider Parameter, ebenso wie das genaue Format der s Wenn format ist ein Standardformat Formatbezeichner-Zeichenfolge.The particular date and time symbols and strings (such as the names of the days of the week in a particular language) used in s are defined by the provider parameter, as is the precise format of s if format is a standard format specifier string. Die provider Parameter kann eine der folgenden sein:The provider parameter can be any of the following:

Wenn provider ist null, CultureInfo -Objekt, das der aktuellen Kultur entspricht, wird verwendet.If provider 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

Gilt für: