DateTime.ParseExact Méthode

Définition

Convertit la représentation sous forme de chaîne spécifiée d'une date et d'une heure en son équivalent DateTime.Converts the specified string representation of a date and time to its DateTime equivalent. Le format de la représentation sous forme de chaîne doit correspondre exactement à un format spécifié, ou une exception est levée.The format of the string representation must match a specified format exactly or an exception is thrown.

Surcharges

ParseExact(String, String, IFormatProvider)

Convertit la représentation sous forme de chaîne spécifiée d'une date et d'une heure en son équivalent DateTime à l'aide des informations de format propres à la culture et au format spécifiés.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format and culture-specific format information. Le format de la représentation sous forme de chaîne doit correspondre exactement au format spécifié.The format of the string representation must match the specified format exactly.

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

Convertit la représentation sous forme d’étendue spécifiée d’une date et d’une heure en son équivalent DateTime à l’aide des informations et du style de format propres à la culture spécifiés.Converts the specified span representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Le format de la représentation sous forme de chaîne doit correspondre exactement au format spécifié, ou une exception est levée.The format of the string representation must match the specified format exactly or an exception is thrown.

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

Convertit la représentation sous forme d’étendue spécifiée d’une date et d’une heure en son équivalent DateTime à l’aide du tableau de formats ainsi que des informations et du style de format propres à la culture spécifiés.Converts the specified span representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Le format de la représentation sous forme de chaîne doit correspondre exactement à au moins l'un des formats spécifiés, ou une exception est levée.The format of the string representation must match at least one of the specified formats exactly or an exception is thrown.

ParseExact(String, String, IFormatProvider, DateTimeStyles)

Convertit la représentation sous forme de chaîne spécifiée d'une date et d'une heure en DateTime équivalent à l'aide des informations et du style de format propres à la culture spécifiés.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Le format de la représentation sous forme de chaîne doit correspondre exactement au format spécifié, ou une exception est levée.The format of the string representation must match the specified format exactly or an exception is thrown.

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

Convertit la représentation sous forme de chaîne spécifiée d'une date et heure en son équivalent DateTime à l'aide du tableau de formats, des informations et du style de format propres à la culture spécifiés.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. Le format de la représentation sous forme de chaîne doit correspondre exactement à au moins l'un des formats spécifiés, ou une exception est levée.The format of the string representation must match at least one of the specified formats exactly or an exception is thrown.

Remarques

Important

Les ères des calendriers japonais sont basées sur le règne de l’empereur et sont donc amenées à changer.Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. Par exemple, le 1 mai 2019 a marqué le début de l’ère Reiwa dans JapaneseCalendar et JapaneseLunisolarCalendar.For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Ce changement d’ère affecte toutes les applications qui utilisent ces calendriers.Such a change of era affects all applications that use these calendars. Pour plus d’informations et pour déterminer si vos applications sont affectées, consultez Handling a new era in the Japanese calendar in .NET.See Handling a new era in the Japanese calendar in .NET for more information and to determine whether your applications are affected. Pour plus d’informations sur le test de vos applications sur les systèmes Windows pour garantir leur préparation au changement d’ère, consultez Préparer votre application au changement de l’ère japonaise.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. Consultez Utilisation des ères pour connaître les fonctionnalités de .NET qui prennent en charge les calendriers avec plusieurs ères et les bonnes pratiques d’utilisation de ce type de calendrier.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)

Convertit la représentation sous forme de chaîne spécifiée d'une date et d'une heure en son équivalent DateTime à l'aide des informations de format propres à la culture et au format spécifiés.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format and culture-specific format information. Le format de la représentation sous forme de chaîne doit correspondre exactement au format spécifié.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);
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

Paramètres

s
String

Chaîne contenant une date et une heure à convertir.A string that contains a date and time to convert.

format
String

Spécificateur de format définissant le format requis de s.A format specifier that defines the required format of s. Pour plus d'informations, consultez la section Remarques.For more information, see the Remarks section.

provider
IFormatProvider

Objet qui fournit des informations de format spécifiques à la culture sur s.An object that supplies culture-specific format information about s.

Retours

DateTime

Objet qui équivaut à la date et à l'heure figurant dans s, comme spécifié par format et provider.An object that is equivalent to the date and time contained in s, as specified by format and provider.

Exceptions

s ou format est null.s or format is null.

s ou format est une chaîne vide.s or format is an empty string.

- ou --or- s ne contient pas une date et une heure qui correspondent au modèle spécifié dans format.s does not contain a date and time that corresponds to the pattern specified in format.

- ou --or- Le composant heure et l’indicateur AM/PM dans s ne correspondent pas.The hour component and the AM/PM designator in s do not agree.

Exemples

L’exemple suivant illustre la ParseExact méthode.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.

Remarques

La DateTime.ParseExact(String, String, IFormatProvider) méthode analyse la représentation sous forme de chaîne d’une date, qui doit être au format défini par le format paramètre.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. Elle requiert également que les <Date> <Time> éléments et de la représentation sous forme de chaîne d’une date et d’une heure s’affichent dans l’ordre spécifié par format , et qui n' s ont pas d’espace blanc autre que celui autorisé par format .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. Si format définit une date sans élément d’heure et que l’opération d’analyse aboutit, la valeur résultante DateTime a une heure de minuit (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). Si format définit une heure sans élément de date et que l’opération d’analyse aboutit, la valeur résultante DateTime a une date de 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.

Si s ne représente pas une heure dans un fuseau horaire particulier et que l’opération d’analyse s’effectue correctement, la Kind propriété de la valeur retournée DateTime est 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. Si s représente l’heure dans un fuseau horaire particulier et format autorise la présence d’informations de fuseau horaire (par exemple, si format est égal aux spécificateurs de format standard « o », « r » ou « u », ou s’il contient les spécificateurs de format personnalisés « z », « ZZ » ou « zzz »), la Kind propriété de la valeur retournée DateTime est 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.

Le format paramètre est une chaîne qui contient soit un spécificateur de format standard unique, soit un ou plusieurs spécificateurs de format personnalisés qui définissent le format requis de 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. Pour plus d’informations sur les codes de mise en forme valides, consultez chaînes de format de date et d’heure standard ou chaînes de format de date et d’heure personnalisées.For details about valid formatting codes, see Standard Date and Time Format Strings or Custom Date and Time Format Strings.

Notes

Si format est un modèle de format personnalisé qui n’inclut pas de séparateurs de date ou d’heure (tels que « yyyyMMddHHmm »), utilisez la culture dite indifférente pour le provider paramètre et la forme la plus étendue de chaque spécificateur de format personnalisé.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. Par exemple, si vous souhaitez spécifier des heures dans le modèle de format, spécifiez la forme plus large, « HH », au lieu de la forme plus restreinte, « H ».For example, if you want to specify hours in the format pattern, specify the wider form, "HH", instead of the narrower form, "H".

Les symboles et les chaînes de date et d’heure particuliers (tels que les noms des jours de la semaine dans une langue particulière) utilisés dans s sont définis par le provider paramètre, tout comme le format précis de s si format est une chaîne de spécificateur de format standard.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. Le provider paramètre peut être l’un des éléments suivants :The provider parameter can be any of the following:

Si provider a null la valeur, l' CultureInfo objet qui correspond à la culture actuelle est utilisé.If provider is null, the CultureInfo object that corresponds to the current culture is used.

Notes pour les appelants

Dans le .NET Framework 4.NET Framework 4 , la ParseExact méthode lève une FormatException si la chaîne à analyser contient un composant heure et un indicateur AM/PM qui ne sont pas en accord.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. Dans .NET Framework 3.5.NET Framework 3.5 et les versions antérieures, l’indicateur AM/PM est ignoré.In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Voir aussi

S’applique à

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

Convertit la représentation sous forme d’étendue spécifiée d’une date et d’une heure en son équivalent DateTime à l’aide des informations et du style de format propres à la culture spécifiés.Converts the specified span representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Le format de la représentation sous forme de chaîne doit correspondre exactement au format spécifié, ou une exception est levée.The format of the string representation must match the specified format exactly or an exception is thrown.

public static DateTime ParseExact (ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider? provider, System.Globalization.DateTimeStyles style = System.Globalization.DateTimeStyles.None);
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

Paramètres

s
ReadOnlySpan<Char>

Étendue contenant les caractères qui représentent une date et une heure à convertir.A span containing the characters that represent a date and time to convert.

format
ReadOnlySpan<Char>

Étendue contenant les caractères qui représentent un spécificateur de format qui définit le format requis de s.A span containing the characters that represent a format specifier that defines the required format of s.

provider
IFormatProvider

Objet qui fournit des informations de mise en forme propres à la culture sur s.An object that supplies culture-specific formatting information about s.

style
DateTimeStyles

Combinaison d'opérations de bits des valeurs d'énumération qui fournit des informations supplémentaires sur s, sur des éléments de style qui peuvent être présents dans s ou sur la conversion de s en valeur DateTime.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. Une valeur typique à spécifier est None.A typical value to specify is None.

Retours

DateTime

Objet qui équivaut à la date et à l'heure figurant dans s, comme spécifié par format, provider et style.An object that is equivalent to the date and time contained in s, as specified by format, provider, and style.

S’applique à

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

Convertit la représentation sous forme d’étendue spécifiée d’une date et d’une heure en son équivalent DateTime à l’aide du tableau de formats ainsi que des informations et du style de format propres à la culture spécifiés.Converts the specified span representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Le format de la représentation sous forme de chaîne doit correspondre exactement à au moins l'un des formats spécifiés, ou une exception est levée.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 (ReadOnlySpan<char> s, string[]? formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style = System.Globalization.DateTimeStyles.None);
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

Paramètres

s
ReadOnlySpan<Char>

Étendue contenant les caractères qui représentent une date et une heure à convertir.A span containing the characters that represent a date and time to convert.

formats
String[]

Tableau de formats possibles pour s.An array of allowable formats of s.

provider
IFormatProvider

Objet qui fournit des informations de format spécifiques à la culture sur s.An object that supplies culture-specific format information about s.

style
DateTimeStyles

Combinaison d'opérations de bits de valeurs d'énumération qui indique le format autorisé du paramètre s.A bitwise combination of enumeration values that indicates the permitted format of s. Une valeur typique à spécifier est None.A typical value to specify is None.

Retours

DateTime

Objet qui équivaut à la date et à l'heure figurant dans s, comme spécifié par formats, provider et style.An object that is equivalent to the date and time contained in s, as specified by formats, provider, and style.

S’applique à

ParseExact(String, String, IFormatProvider, DateTimeStyles)

Convertit la représentation sous forme de chaîne spécifiée d'une date et d'une heure en DateTime équivalent à l'aide des informations et du style de format propres à la culture spécifiés.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Le format de la représentation sous forme de chaîne doit correspondre exactement au format spécifié, ou une exception est levée.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);
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

Paramètres

s
String

Chaîne contenant une date et une heure à convertir.A string containing a date and time to convert.

format
String

Spécificateur de format définissant le format requis de s.A format specifier that defines the required format of s. Pour plus d'informations, consultez la section Remarques.For more information, see the Remarks section.

provider
IFormatProvider

Objet qui fournit des informations de mise en forme propres à la culture sur s.An object that supplies culture-specific formatting information about s.

style
DateTimeStyles

Combinaison d'opérations de bits des valeurs d'énumération qui fournit des informations supplémentaires sur s, sur des éléments de style qui peuvent être présents dans s ou sur la conversion de s en valeur DateTime.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. Une valeur typique à spécifier est None.A typical value to specify is None.

Retours

DateTime

Objet qui équivaut à la date et à l'heure figurant dans s, comme spécifié par format, provider et style.An object that is equivalent to the date and time contained in s, as specified by format, provider, and style.

Exceptions

s ou format est null.s or format is null.

s ou format est une chaîne vide.s or format is an empty string.

- ou --or- s ne contient pas une date et une heure qui correspondent au modèle spécifié dans format.s does not contain a date and time that corresponds to the pattern specified in format.

- ou --or- Le composant heure et l’indicateur AM/PM dans s ne correspondent pas.The hour component and the AM/PM designator in s do not agree.

style contient une combinaison non valide de valeurs DateTimeStyles.style contains an invalid combination of DateTimeStyles values. Par exemple, AssumeLocal et AssumeUniversal.For example, both AssumeLocal and AssumeUniversal.

Exemples

L’exemple suivant illustre la ParseExact(String, String, IFormatProvider) méthode.The following example demonstrates the ParseExact(String, String, IFormatProvider) method. Notez que la chaîne « 5/01/2009 8:30 AM » ne peut pas être analysée correctement lorsque le styles paramètre est égal DateTimeStyles.None à car les espaces de début ne sont pas autorisés par 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. En outre, la chaîne « 5/01/2009 09:00 » ne peut pas être analysée correctement avec un format de « mm/jj/yyyyhh : mm », car la chaîne de date ne précède pas le numéro de mois avec un zéro non significatif, comme le format requiert.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).

Remarques

La DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) méthode analyse la représentation sous forme de chaîne d’une date, qui doit être dans un format défini par le format paramètre.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. Elle requiert également que les éléments de date et d’heure de s apparaissent dans l’ordre spécifié par format .It also requires that the date and time elements in s appear in the order specified by format. Si s ne correspond pas au modèle du format paramètre, avec les variations définies par le style paramètre, la méthode lève une 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. En revanche, la DateTime.Parse(String, IFormatProvider, DateTimeStyles) méthode analyse la représentation sous forme de chaîne d’une date dans l’un des formats reconnus par l’objet du fournisseur de format DateTimeFormatInfo .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. La DateTime.Parse(String, IFormatProvider, DateTimeStyles) méthode permet également aux éléments de date et d’heure dans s d’apparaître dans n’importe quel ordre.The DateTime.Parse(String, IFormatProvider, DateTimeStyles) method also allows the date and time elements in s to appear in any order.

Si le s paramètre contient uniquement une heure et aucune date, la date actuelle est utilisée, sauf si le style paramètre inclut l' DateTimeStyles.NoCurrentDateDefault indicateur, auquel cas la date par défaut ( DateTime.Date.MinValue ) est utilisée.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. Si le s paramètre contient uniquement une date et aucune heure, minuit (00:00:00) est utilisé.If the s parameter contains only a date and no time, midnight (00:00:00) is used. Le style paramètre détermine également si le s paramètre peut contenir des espaces blancs de début, internes ou de fin.The style parameter also determines whether the s parameter can contain leading, inner, or trailing white space characters.

Si s ne contient pas d’informations de fuseau horaire, la Kind propriété de l' DateTime objet retourné est DateTimeKind.Unspecified .If s contains no time zone information, the Kind property of the returned DateTime object is DateTimeKind.Unspecified. Ce comportement peut être modifié à l’aide de l' DateTimeStyles.AssumeLocal indicateur, qui retourne une DateTime valeur dont la Kind propriété a DateTimeKind.Local la valeur, ou à l’aide des DateTimeStyles.AssumeUniversal DateTimeStyles.AdjustToUniversal indicateurs et, qui retourne une DateTime valeur dont la Kind propriété a la valeur 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. Si s contient des informations de fuseau horaire, l’heure est convertie en heure locale, si nécessaire, et la Kind propriété de l' DateTime objet retourné a la valeur 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. Ce comportement peut être modifié à l’aide de l' DateTimeStyles.RoundtripKind indicateur pour ne pas convertir le temps universel coordonné (UTC, Universal Time Coordinated) en heure locale et pour affecter à la propriété la valeur Kind 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.

Le format paramètre définit le modèle requis du s paramètre.The format parameter defines the required pattern of the s parameter. Il peut se composer d’un ou de plusieurs spécificateurs de format personnalisés du tableau de chaînes de format de date et d’heure personnalisé , ou d’un spécificateur de format standard unique, qui identifie un modèle prédéfini, à partir du tableau de chaînes de format de date et d’heure standard .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.

Si vous n’utilisez pas de séparateurs de date ou d’heure dans un modèle de format personnalisé, utilisez la culture dite indifférente pour le provider paramètre et la forme la plus étendue de chaque spécificateur de format personnalisé.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. Par exemple, si vous souhaitez spécifier des heures dans le modèle, spécifiez la forme plus large, « HH », au lieu de la forme plus étroite, « H ».For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

Notes

Plutôt que de demander à ce qu’il soit s conforme à un format unique pour que l’opération d’analyse aboutisse, vous pouvez appeler la DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) méthode et spécifier plusieurs formats autorisés.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. Cela rend l’opération d’analyse plus susceptible d’être effectuée.This makes the parse operation more likely to succeed.

Le styles paramètre comprend un ou plusieurs membres de l' DateTimeStyles énumération qui déterminent si et où l’espace blanc non défini par format peut apparaître dans s et qui contrôlent le comportement précis de l’opération d’analyse.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. Le tableau suivant décrit la façon dont chaque membre de l' DateTimeStyles énumération affecte le fonctionnement de la ParseExact(String, String, IFormatProvider, DateTimeStyles) méthode.The following table describes how each member of the DateTimeStyles enumeration affects the operation of the ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

Membre DateTimeStylesDateTimeStyles member DescriptionDescription
AdjustToUniversal Analyse s et, si nécessaire, le convertit en heure UTC.Parses s and, if necessary, converts it to UTC. Si s inclut un décalage de fuseau horaire, ou si s ne contient pas d’informations de fuseau horaire mais styles inclut l' DateTimeStyles.AssumeLocal indicateur, la méthode analyse la chaîne, appelle ToUniversalTime pour convertir la valeur retournée DateTime en heure UTC et affecte à la propriété la valeur Kind 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. Si s indique qu’il représente l’heure UTC, ou si s ne contient pas d’informations sur les fuseaux horaires mais styles comprend l' DateTimeStyles.AssumeUniversal indicateur, la méthode analyse la chaîne, n’effectue aucune conversion de fuseau horaire sur la valeur retournée DateTime et affecte à la propriété la valeur Kind 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. Dans tous les autres cas, l’indicateur n’a aucun effet.In all other cases, the flag has no effect.
AllowInnerWhite Spécifie que l’espace blanc non défini par format peut apparaître entre un élément de date ou d’heure spécifique.Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite Spécifie que l’espace blanc non défini par format peut apparaître au début de s .Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite Spécifie que l’espace blanc non défini par format peut apparaître à la fin de s .Specifies that white space not defined by format can appear at the end of s.
AllowWhiteSpaces Spécifie que s peut contenir des espaces blancs de début, internes et de fin non définis par format .Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
AssumeLocal Spécifie que s' s il manque des informations de fuseau horaire, il est supposé représenter une heure locale.Specifies that if s lacks any time zone information, it is assumed to represent a local time. À moins que l' DateTimeStyles.AdjustToUniversal indicateur ne soit présent, la Kind propriété de la valeur retournée DateTime est définie sur DateTimeKind.Local .Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal Spécifie que s' s il manque des informations de fuseau horaire, il est supposé représenter l’heure UTC.Specifies that if s lacks any time zone information, it is assumed to represent UTC. À moins que l' DateTimeStyles.AdjustToUniversal indicateur ne soit présent, la méthode convertit la valeur retournée de l’heure DateTime UTC en heure locale et affecte à sa propriété la valeur Kind 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 Si s contient une heure sans informations de date, la date de la valeur de retour est définie sur DateTime.MinValue.Date .If s contains time without date information, the date of the return value is set to DateTime.MinValue.Date.
None Le s paramètre est analysé à l’aide des valeurs par défaut.The s parameter is parsed using default values. Aucun espace blanc autre que celui présent dans format n’est autorisé.No white space other than that present in format is allowed. Si le s n’a pas de composant date, la date de la valeur retournée DateTime est définie sur 1/1/0001.If s lacks a date component, the date of the returned DateTime value is set to 1/1/0001. Si s ne contient pas d’informations de fuseau horaire, la Kind propriété de l' DateTime objet retourné a la valeur DateTimeKind.Unspecified .If s contains no time zone information, the Kind property of the returned DateTime object is set to DateTimeKind.Unspecified. Si des informations de fuseau horaire sont présentes dans s , l’heure est convertie en heure locale et la Kind propriété de l' DateTime objet retourné a la valeur 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 Pour les chaînes qui contiennent des informations de fuseau horaire, tente d’empêcher la conversion en une DateTime valeur date/heure avec sa Kind propriété définie sur 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. Cet indicateur empêche principalement la conversion des heures UTC en heures locales.This flag primarily prevents the conversion of UTC times to local times.

Les symboles et les chaînes de date et d’heure particuliers (tels que les noms des jours de la semaine dans une langue particulière) utilisés dans s sont définis par le provider paramètre, tout comme le format précis de s si format est une chaîne de spécificateur de format standard.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. Le provider paramètre peut être l’un des éléments suivants :The provider parameter can be any of the following:

Si provider a null la valeur, l' CultureInfo objet qui correspond à la culture actuelle est utilisé.If provider is null, the CultureInfo object that corresponds to the current culture is used.

Notes pour les appelants

Dans le .NET Framework 4.NET Framework 4 , la ParseExact méthode lève une FormatException si la chaîne à analyser contient un composant heure et un indicateur AM/PM qui ne sont pas en accord.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. Dans .NET Framework 3.5.NET Framework 3.5 et les versions antérieures, l’indicateur AM/PM est ignoré.In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Voir aussi

S’applique à

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

Convertit la représentation sous forme de chaîne spécifiée d'une date et heure en son équivalent DateTime à l'aide du tableau de formats, des informations et du style de format propres à la culture spécifiés.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. Le format de la représentation sous forme de chaîne doit correspondre exactement à au moins l'un des formats spécifiés, ou une exception est levée.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);
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

Paramètres

s
String

Chaîne contenant une date et une heure à convertir.A string that contains a date and time to convert.

formats
String[]

Tableau de formats possibles pour s.An array of allowable formats of s. Pour plus d'informations, consultez la section Remarques.For more information, see the Remarks section.

provider
IFormatProvider

Objet qui fournit des informations de format spécifiques à la culture sur s.An object that supplies culture-specific format information about s.

style
DateTimeStyles

Combinaison d'opérations de bits de valeurs d'énumération qui indique le format autorisé du paramètre s.A bitwise combination of enumeration values that indicates the permitted format of s. Une valeur typique à spécifier est None.A typical value to specify is None.

Retours

DateTime

Objet qui équivaut à la date et à l'heure figurant dans s, comme spécifié par formats, provider et style.An object that is equivalent to the date and time contained in s, as specified by formats, provider, and style.

Exceptions

s ou formats est null.s or formats is null.

s est une chaîne vide.s is an empty string.

- ou --or- un élément de formats est une chaîne vide.an element of formats is an empty string.

- ou --or- s ne contient pas de date et heure qui correspondent à un élément de formats.s does not contain a date and time that corresponds to any element of formats.

- ou --or- Le composant heure et l’indicateur AM/PM dans s ne correspondent pas.The hour component and the AM/PM designator in s do not agree.

style contient une combinaison non valide de valeurs DateTimeStyles.style contains an invalid combination of DateTimeStyles values. Par exemple, AssumeLocal et AssumeUniversal.For example, both AssumeLocal and AssumeUniversal.

Exemples

L’exemple suivant utilise la DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) méthode pour garantir qu’une chaîne dans un certain nombre de formats possibles peut être analysée avec succès.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.

Remarques

La DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) méthode analyse la représentation sous forme de chaîne d’une date qui correspond à l’un des modèles affectés au formats paramètre.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. Si la chaîne s ne correspond à aucun de ces modèles avec l’une des variations définies par le styles paramètre, la méthode lève une 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. Outre la comparaison s à plusieurs modèles de mise en forme, plutôt qu’à un seul modèle de mise en forme, cette surcharge se comporte de la même façon que la DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) méthode.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.

Le s paramètre contient la date et l’heure à analyser.The s parameter contains the date and time to parse. Si le s paramètre contient uniquement une heure et aucune date, la date actuelle est utilisée, sauf si le style paramètre inclut l' DateTimeStyles.NoCurrentDateDefault indicateur, auquel cas la date par défaut ( DateTime.Date.MinValue ) est utilisée.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. Si le s paramètre contient uniquement une date et aucune heure, minuit (00:00:00) est utilisé.If the s parameter contains only a date and no time, midnight (00:00:00) is used. Le style paramètre détermine également si le s paramètre peut contenir des espaces blancs de début, internes ou de fin autres que ceux autorisés par l’une des chaînes de format dans 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.

Si s ne contient pas d’informations de fuseau horaire, la Kind propriété de l' DateTime objet retourné est DateTimeKind.Unspecified .If s contains no time zone information, the Kind property of the returned DateTime object is DateTimeKind.Unspecified. Ce comportement peut être modifié à l’aide de l' DateTimeStyles.AssumeLocal indicateur, qui retourne une DateTime valeur dont la Kind propriété a DateTimeKind.Local la valeur, ou à l’aide des DateTimeStyles.AssumeUniversal DateTimeStyles.AdjustToUniversal indicateurs et, qui retourne une DateTime valeur dont la Kind propriété a la valeur 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. Si s contient des informations de fuseau horaire, l’heure est convertie en heure locale, si nécessaire, et la Kind propriété de l' DateTime objet retourné a la valeur 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. Ce comportement peut être modifié à l’aide de l' DateTimeStyles.RoundtripKind indicateur pour ne pas convertir le temps universel coordonné (UTC, Universal Time Coordinated) en heure locale et affecter à la propriété la valeur Kind 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.

Le formats paramètre contient un tableau de modèles, dont l’un s doit correspondre exactement si l’opération d’analyse doit être effectuée correctement.The formats parameter contains an array of patterns, one of which s must match exactly if the parse operation is to succeed. Les modèles du formats paramètre se composent d’un ou de plusieurs spécificateurs de format personnalisés du tableau de chaînes de format de date et d’heure personnalisé , ou d’un spécificateur de format standard unique, qui identifie un modèle prédéfini, à partir du tableau de chaînes de format de date et d’heure standard .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.

Si vous n’utilisez pas de séparateurs de date ou d’heure dans un modèle de format personnalisé, utilisez la culture dite indifférente pour le provider paramètre et la forme la plus étendue de chaque spécificateur de format personnalisé.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. Par exemple, si vous souhaitez spécifier des heures dans le modèle, spécifiez la forme plus large, « HH », au lieu de la forme plus étroite, « H ».For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

Le styles paramètre comprend un ou plusieurs membres de l' DateTimeStyles énumération qui déterminent si et où l’espace blanc non défini par format peut apparaître dans s et qui contrôlent le comportement précis de l’opération d’analyse.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. Le tableau suivant décrit la façon dont chaque membre de l' DateTimeStyles énumération affecte le fonctionnement de la ParseExact(String, String, IFormatProvider, DateTimeStyles) méthode.The following table describes how each member of the DateTimeStyles enumeration affects the operation of the ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

Membre DateTimeStylesDateTimeStyles member DescriptionDescription
AdjustToUniversal Analyse s et, si nécessaire, le convertit en heure UTC.Parses s and, if necessary, converts it to UTC. Si s inclut un décalage de fuseau horaire, ou si s ne contient pas d’informations de fuseau horaire mais styles inclut l' DateTimeStyles.AssumeLocal indicateur, la méthode analyse la chaîne, appelle ToUniversalTime pour convertir la valeur retournée DateTime en heure UTC et affecte à la propriété la valeur Kind 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. Si s indique qu’il représente l’heure UTC, ou si s ne contient pas d’informations sur les fuseaux horaires mais styles comprend l' DateTimeStyles.AssumeUniversal indicateur, la méthode analyse la chaîne, n’effectue aucune conversion de fuseau horaire sur la valeur retournée DateTime et affecte à la propriété la valeur Kind 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. Dans tous les autres cas, l’indicateur n’a aucun effet.In all other cases, the flag has no effect.
AllowInnerWhite Spécifie que l’espace blanc non défini par format peut apparaître entre un élément de date ou d’heure spécifique.Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite Spécifie que l’espace blanc non défini par format peut apparaître au début de s .Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite Spécifie que l’espace blanc non défini par format peut apparaître à la fin de s .Specifies that white space not defined by format can appear at the end of s.
AllowWhiteSpaces Spécifie que s peut contenir des espaces blancs de début, internes et de fin non définis par format .Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
AssumeLocal Spécifie que s' s il manque des informations de fuseau horaire, il est supposé représenter une heure locale.Specifies that if s lacks any time zone information, it is assumed to represent a local time. À moins que l' DateTimeStyles.AdjustToUniversal indicateur ne soit présent, la Kind propriété de la valeur retournée DateTime est définie sur DateTimeKind.Local .Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal Spécifie que s' s il manque des informations de fuseau horaire, il est supposé représenter l’heure UTC.Specifies that if s lacks any time zone information, it is assumed to represent UTC. À moins que l' DateTimeStyles.AdjustToUniversal indicateur ne soit présent, la méthode convertit la valeur retournée de l’heure DateTime UTC en heure locale et affecte à sa propriété la valeur Kind 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 Si s contient une heure sans informations de date, la date de la valeur de retour est définie sur DateTime.MinValue.Date .If s contains time without date information, the date of the return value is set to DateTime.MinValue.Date.
None Le s paramètre est analysé à l’aide des valeurs par défaut.The s parameter is parsed using default values. Aucun espace blanc autre que celui présent dans format n’est autorisé.No white space other than that present in format is allowed. Si le s n’a pas de composant date, la date de la valeur retournée DateTime est définie sur 1/1/0001.If s lacks a date component, the date of the returned DateTime value is set to 1/1/0001. Si s ne contient pas d’informations de fuseau horaire, la Kind propriété de l' DateTime objet retourné a la valeur DateTimeKind.Unspecified .If s contains no time zone information, the Kind property of the returned DateTime object is set to DateTimeKind.Unspecified. Si des informations de fuseau horaire sont présentes dans s , l’heure est convertie en heure locale et la Kind propriété de l' DateTime objet retourné a la valeur 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 Pour les chaînes qui contiennent des informations de fuseau horaire, tente d’empêcher la conversion en une date et une heure dont la propriété a la Kind valeur 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. Cet indicateur empêche principalement la conversion des heures UTC en heures locales.This flag primarily prevents the conversion of UTC times to local times.

Les symboles et les chaînes de date et d’heure particuliers (tels que les noms des jours de la semaine dans une langue particulière) utilisés dans s sont définis par le provider paramètre, tout comme le format précis de s si format est une chaîne de spécificateur de format standard.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. Le provider paramètre peut être l’un des éléments suivants :The provider parameter can be any of the following:

Si provider a null la valeur, l' CultureInfo objet qui correspond à la culture actuelle est utilisé.If provider is null, the CultureInfo object that corresponds to the current culture is used.

Notes pour les appelants

Dans le .NET Framework 4.NET Framework 4 , la ParseExact méthode lève une FormatException si la chaîne à analyser contient un composant heure et un indicateur AM/PM qui ne sont pas en accord.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. Dans .NET Framework 3.5.NET Framework 3.5 et les versions antérieures, l’indicateur AM/PM est ignoré.In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Voir aussi

S’applique à