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

Definizione

Converte una determinata rappresentazione di stringa di una data e di un'ora nell'equivalente DateTime.Converts the specified string representation of a date and time to its DateTime equivalent. Il formato della rappresentazione di stringa deve corrispondere esattamente a un formato specificato; in caso contrario, verrà generata un'eccezione.The format of the string representation must match a specified format exactly or an exception is thrown.

Overload

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

Converte una determinata rappresentazione di stringa di una data e di un'ora nel relativo oggetto DateTime equivalente usando il formato specificato e le informazioni sul formato relative alle impostazioni cultura specificate.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format and culture-specific format information. Il formato della rappresentazione di stringa deve corrispondere esattamente al formato specificato.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)

Converte una determinata rappresentazione di stringa di una data e di un'ora nell'oggetto DateTime equivalente usando il formato, le informazioni sul formato specifiche delle impostazioni cultura e lo stile specificati.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Il formato della rappresentazione di stringa deve corrispondere esattamente al formato specificato. In caso contrario, verrà generata un'eccezione.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)

Converte una determinata rappresentazione di stringa di una data e di un'ora nell'oggetto DateTime equivalente usando la matrice di formati, le informazioni sul formato specifiche delle impostazioni cultura e lo stile specificati.Converts the specified string representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Il formato della rappresentazione di stringa deve corrispondere esattamente ad almeno uno dei formati specificati; in caso contrario, verrà generata un'eccezione.The format of the string representation must match at least one of the specified formats exactly or an exception is thrown.

Commenti

Importante

Le ere nel calendario giapponese sono basate sul regno dell'imperatore e pertanto è previsto che cambino.Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. Ad esempio, il 1° maggio 2019 contraddistingue l'inizio dell'era Reiwa in JapaneseCalendar e JapaneseLunisolarCalendar.For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Questo cambio di era interessa tutte le applicazioni che usano questi calendari.Such a change of era affects all applications that use these calendars. Vedere Handling a new era in the Japanese calendar in .NET (Gestione di una nuova era nel calendario giapponese in .NET) per altre informazioni e per determinare se le proprie applicazioni sono interessate dal cambio.See Handling a new era in the Japanese calendar in .NET for more information and to determine whether your applications are affected. Vedere Prepare your application for the Japanese era change (Preparare l'applicazione per il cambio di era giapponese) per informazioni sul test delle applicazioni nei sistemi Windows per verificare che siano pronte per il cambio di era.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. Vedere Utilizzo delle ere per informazioni sulle funzionalità in .NET che supportano calendari con più ere e per le procedure consigliate per l'uso dei calendari che supportano più ere.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)

Converte una determinata rappresentazione di stringa di una data e di un'ora nel relativo oggetto DateTime equivalente usando il formato specificato e le informazioni sul formato relative alle impostazioni cultura specificate.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format and culture-specific format information. Il formato della rappresentazione di stringa deve corrispondere esattamente al formato specificato.The format of the string representation must match the specified format exactly.

public:
 static 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

Parametri

s
String String String String

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

format
String String String String

Identificatore di formato che definisce il formato richiesto di s.A format specifier that defines the required format of s. Per altre informazioni, vedere la sezione Osservazioni.For more information, see the Remarks section.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Oggetto che fornisce informazioni sul formato di s specifiche delle impostazioni cultura.An object that supplies culture-specific format information about s.

Restituisce

Oggetto equivalente alla data e all'ora contenute in s, come specificato da format e provider.An object that is equivalent to the date and time contained in s, as specified by format and provider.

Eccezioni

s o format è una stringa vuota.s or format is an empty string.

In alternativa-or- s non contiene una data e un'ora che corrispondono al criterio specificato in format.s does not contain a date and time that corresponds to the pattern specified in format.

In alternativa-or- Il componente relativo alle ore e l'identificatore AM/PM in s non corrispondono.The hour component and the AM/PM designator in s do not agree.

Esempi

Nell'esempio seguente viene illustrato il ParseExact (metodo).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.

Commenti

Il DateTime.ParseExact(String, String, IFormatProvider) metodo analizza la rappresentazione di stringa di una data, che deve essere nel formato definito per il format parametro.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. Richiede inoltre che il <data > e <ora > gli elementi della rappresentazione di stringa di data e ora vengono visualizzati nell'ordine specificato da formate che s non spazio vuoto diverso da quello consentito dal 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. Se format definisce una data senza alcun elemento tempo e l'analisi operazione ha esito positivo, l'oggetto risultante DateTime valore dispone di un'ora dalla mezzanotte (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). Se format definisce un'ora senza alcun elemento di data e l'analisi operazione ha esito positivo, l'oggetto risultante DateTime valore ha una data di 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.

Se s non rappresenta un'ora in un determinato fuso orario e l'operazione di analisi ha esito positivo, il Kind proprietà del valore restituito DateTime valore 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. Se s rappresentano il tempo in un determinato fuso orario e format consente di informazioni sul fuso orario deve essere presente (ad esempio, se format è uguale all'oggetto "o", "r" o identificatori di formato standard "u", o se contiene la "z", "zz" o "zzz" identificatori di formato personalizzato), il Kind proprietà dell'oggetto restituito DateTime valore 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.

Il format parametro è una stringa che contiene un identificatore di formato singolo standard oppure uno o più identificatori di formato personalizzato che definiscono il formato richiesto di 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. Per informazioni dettagliate sui codici di formattazione validi, vedere Standard Date and Time Format Strings oppure 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.

Nota

Se format è un modello di formato personalizzato che non includono i separatori di data o ora (ad esempio, "yyyyMMddHHmm"), usano la lingua inglese per il provider identificatore di formato di parametro e la forma più estesa di ogni personalizzata.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. Ad esempio, se si desidera specificare le ore nel modello di formato, specificare la forma più estesa, "HH", anziché la forma più ristretta, "H".For example, if you want to specify hours in the format pattern, specify the wider form, "HH", instead of the narrower form, "H".

La data e i simboli di tempo e stringhe (ad esempio i nomi dei giorni della settimana in un determinato linguaggio) usate nelle s sono definiti dal provider parametro, perché è il formato esatto di s se format è un formato standard stringa dell'identificatore.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. Il provider parametro può essere uno dei seguenti:The provider parameter can be any of the following:

Se provider viene null, il CultureInfo viene usato l'oggetto che corrisponde alla lingua corrente.If provider is null, the CultureInfo object that corresponds to the current culture is used.

Note per i chiamanti

Nel .NET Framework 4.NET Framework 4, il ParseExact metodo genera un FormatException se la stringa da analizzare include un componente di ora e un indicatore AM/PM non presenti nel contratto.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. Nel .NET Framework 3.5.NET Framework 3.5 , ignorando le versioni precedenti, l'indicatore AM/PM.In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Vedi anche

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

Parametri

format
ReadOnlySpan<Char>

Restituisce

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

Parametri

formats
String[]

Restituisce

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

Converte una determinata rappresentazione di stringa di una data e di un'ora nell'oggetto DateTime equivalente usando il formato, le informazioni sul formato specifiche delle impostazioni cultura e lo stile specificati.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Il formato della rappresentazione di stringa deve corrispondere esattamente al formato specificato. In caso contrario, verrà generata un'eccezione.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

Parametri

s
String String String String

Stringa contenente data e ora da convertire.A string containing a date and time to convert.

format
String String String String

Identificatore di formato che definisce il formato richiesto di s.A format specifier that defines the required format of s. Per altre informazioni, vedere la sezione Osservazioni.For more information, see the Remarks section.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

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

style
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

Combinazione bit per bit dei valori di enumerazione che fornisce informazioni aggiuntive su s, sugli elementi di stile che possono essere presenti in s o sulla conversione da s a un valore 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. Un valore tipico da specificare è None.A typical value to specify is None.

Restituisce

Oggetto equivalente alla data e all'ora contenute in s, come specificato da format, provider e style.An object that is equivalent to the date and time contained in s, as specified by format, provider, and style.

Eccezioni

s o format è una stringa vuota.s or format is an empty string.

In alternativa-or- s non contiene una data e un'ora che corrispondono al criterio specificato in format.s does not contain a date and time that corresponds to the pattern specified in format.

In alternativa-or- Il componente relativo alle ore e l'identificatore AM/PM in s non corrispondono.The hour component and the AM/PM designator in s do not agree.

style contiene una combinazione non valida di valori di DateTimeStyles.style contains an invalid combination of DateTimeStyles values. Ad esempio, sia AssumeLocal che AssumeUniversal.For example, both AssumeLocal and AssumeUniversal.

Esempi

Nell'esempio seguente viene illustrato il ParseExact(String, String, IFormatProvider) (metodo).The following example demonstrates the ParseExact(String, String, IFormatProvider) method. Si noti che la stringa "5/01/2009 8:30" non può essere analizzato correttamente quando la styles parametro è uguale a DateTimeStyles.None perché non sono consentiti gli spazi iniziali da 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. Inoltre, la stringa "5/01/2009 GMT+09.00" non può essere analizzato correttamente con un format di "MM/GG/yyyyhh:mm" perché la stringa di data non precede il numero di mesi con uno zero iniziale, come format richiede.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).

Commenti

Il DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) metodo analizza la rappresentazione di stringa di una data, che deve essere in un formato definito dal format parametro.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. Inoltre, richiede che gli elementi di data e ora in s vengono visualizzati nell'ordine specificato dalla format.It also requires that the date and time elements in s appear in the order specified by format. Se s non corrisponde al modello del format parametro, qualsiasi variazione definito dal style parametro, il metodo genera un 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. Al contrario, il DateTime.Parse(String, IFormatProvider, DateTimeStyles) metodo analizza la rappresentazione di stringa di una data in uno dei formati riconosciuto dal provider di formato DateTimeFormatInfo oggetto.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. Il DateTime.Parse(String, IFormatProvider, DateTimeStyles) metodo consente inoltre di elementi di data e ora in s vengano visualizzati in qualsiasi ordine.The DateTime.Parse(String, IFormatProvider, DateTimeStyles) method also allows the date and time elements in s to appear in any order.

Se il s parametro contiene solo una volta e non una data, la data corrente viene usata, a meno che il style parametro include il DateTimeStyles.NoCurrentDateDefault flag, nel qual caso la data predefinita (DateTime.Date.MinValue) viene usato.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. Se il s parametro non contiene solo la data e ora, mezzanotte (00: 00:00) viene usato.If the s parameter contains only a date and no time, midnight (00:00:00) is used. Il style parametro determina inoltre se il s parametro può contenere i caratteri spazi vuoti iniziali, interna o finali.The style parameter also determines whether the s parameter can contain leading, inner, or trailing white space characters.

Se s non contiene alcuna informazione di fuso orario, il Kind proprietà del valore restituito DateTime oggetto DateTimeKind.Unspecified.If s contains no time zone information, the Kind property of the returned DateTime object is DateTimeKind.Unspecified. Questo comportamento può essere modificato usando il DateTimeStyles.AssumeLocal flag, che restituisce un DateTime valore la cui proprietà Kind proprietà è DateTimeKind.Local, o utilizzando il DateTimeStyles.AssumeUniversal e DateTimeStyles.AdjustToUniversal flag, che restituisce un DateTime valore la cui proprietà Kind è di proprietà 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. Se s contiene informazioni sul fuso orario, l'ora viene convertita nell'ora locale, se necessario e il Kind proprietà del valore restituito DateTime è impostata su 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. Questo comportamento può essere modificato usando il DateTimeStyles.RoundtripKind flag per non convertire Coordinated Universal Time (UTC) in un'ora locale e impostare il Kind proprietà 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.

Il format parametro definisce il criterio obbligatorio del s parametro.The format parameter defines the required pattern of the s parameter. Può essere costituito da uno o più identificatori di formato personalizzati i Custom Date and Time Format Strings tabella o un identificatore di formato singolo standard, che identifica un criterio predefinito, dal data Standard e Stringhe di formato di tipo ora tabella.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.

Se non si utilizza i separatori di data o ora in un modello di formato personalizzato, usare la lingua inglese per il provider identificatore di formato di parametro e la forma più estesa di ogni personalizzata.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. Ad esempio, se si desidera specificare le ore nel modello, specificare la forma più estesa, "HH", anziché la forma più ristretta, "H".For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

Nota

Invece di richiedere che s conformi a un singolo formato per l'operazione di analisi abbia esito positivo, è possibile chiamare il DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) (metodo) e specificare più formati consentiti.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. In questo modo l'operazione di analisi più probabile che abbia esito positivo.This makes the parse operation more likely to succeed.

Il styles parametro include uno o più membri del DateTimeStyles enumerazione che determina se e in cui lo spazio vuoto non è definito dal format possono essere visualizzati in s e che controllano il comportamento preciso dell'operazione di analisi.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. La tabella seguente descrive come ogni membro del DateTimeStyles enumerazione influisce sul funzionamento del ParseExact(String, String, IFormatProvider, DateTimeStyles) (metodo).The following table describes how each member of the DateTimeStyles enumeration affects the operation of the ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

Membro DateTimeStylesDateTimeStyles member DescrizioneDescription
AdjustToUniversal Analizza s e, se necessario, lo converte in formato UTC.Parses s and, if necessary, converts it to UTC. Se s include una differenza di fuso orario, oppure se s non contiene alcuna informazione di fuso orario, ma styles include il DateTimeStyles.AssumeLocal flag, il metodo analizza la stringa, le chiamate ToUniversalTime convertire l'oggetto restituito DateTime valore in formato UTC e imposta il Kind proprietà 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. Se s rappresenta il formato UTC, oppure se s non contiene informazioni sul fuso orario, ma styles include il DateTimeStyles.AssumeUniversal flag, il metodo analizza la stringa, non esegue alcuna conversione del fuso orario sull'oggetto restituito DateTime valore e imposta il Kind proprietà 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 tutti gli altri casi, il flag non ha alcun effetto.In all other cases, the flag has no effect.
AllowInnerWhite Specifica che lo spazio vuoto non è definito da format possono apparire tra qualsiasi singola data o un elemento relativo all'ora.Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite Specifica che lo spazio vuoto non è definito da format possono essere visualizzati all'inizio del s.Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite Specifica che lo spazio vuoto non è definito da format possono essere visualizzati alla fine di s.Specifies that white space not defined by format can appear at the end of s.
AllowWhiteSpaces Specifica che s può contenere iniziali, interni e gli spazi vuoti non è definiti da finali format.Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
AssumeLocal Specifica che se s non contiene informazioni sul fuso orario, si presuppone che rappresenti un'ora locale.Specifies that if s lacks any time zone information, it is assumed to represent a local time. A meno che il DateTimeStyles.AdjustToUniversal flag è presente, il Kind proprietà del valore restituito DateTime è impostato su DateTimeKind.Local.Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal Specifica che se s non contiene informazioni sul fuso orario, si presuppone per rappresentare l'ora UTC.Specifies that if s lacks any time zone information, it is assumed to represent UTC. A meno che il DateTimeStyles.AdjustToUniversal flag è presente, il metodo converte l'oggetto restituito DateTime valore rispetto all'ora UTC in ora locale e imposta relativo Kind proprietà 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 Se s contiene ora senza informazioni relative alla data, la data del valore restituito è impostata su DateTime.MinValue.Date.If s contains time without date information, the date of the return value is set to DateTime.MinValue.Date.
None Il s parametro analizzato usando i valori predefiniti.The s parameter is parsed using default values. Nessun spazio vuoto diverso dal quello presente in format è consentito.No white space other than that present in format is allowed. Se s non dispone di un componente relativo alla data, la data del valore restituito DateTime valore è impostato su 1/1/0001.If s lacks a date component, the date of the returned DateTime value is set to 1/1/0001. Se s non contiene alcuna informazione di fuso orario, il Kind proprietà del valore restituito DateTime è impostata su DateTimeKind.Unspecified.If s contains no time zone information, the Kind property of the returned DateTime object is set to DateTimeKind.Unspecified. Se è presente nelle informazioni sul fuso orario s, l'ora viene convertita nell'ora locale e il Kind proprietà del valore restituito DateTime è impostata su 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 Per le stringhe che contengono informazioni sul fuso orario, prova a impedire la conversione in un DateTime il valore di data e ora con relativo Kind impostata su 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. Questo flag è principalmente impedisce la conversione dell'ora UTC in ora locale.This flag primarily prevents the conversion of UTC times to local times.

La data e i simboli di tempo e stringhe (ad esempio i nomi dei giorni della settimana in un determinato linguaggio) usate nelle s sono definiti dal provider parametro, perché è il formato esatto di s se format è un formato standard stringa dell'identificatore.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. Il provider parametro può essere uno dei seguenti:The provider parameter can be any of the following:

Se provider viene null, il CultureInfo viene usato l'oggetto che corrisponde alla lingua corrente.If provider is null, the CultureInfo object that corresponds to the current culture is used.

Note per i chiamanti

Nel .NET Framework 4.NET Framework 4, il ParseExact metodo genera un FormatException se la stringa da analizzare include un componente di ora e un indicatore AM/PM non presenti nel contratto.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. Nel .NET Framework 3.5.NET Framework 3.5 , ignorando le versioni precedenti, l'indicatore AM/PM.In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Vedi anche

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

Converte una determinata rappresentazione di stringa di una data e di un'ora nell'oggetto DateTime equivalente usando la matrice di formati, le informazioni sul formato specifiche delle impostazioni cultura e lo stile specificati.Converts the specified string representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Il formato della rappresentazione di stringa deve corrispondere esattamente ad almeno uno dei formati specificati; in caso contrario, verrà generata un'eccezione.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

Parametri

s
String String String String

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

formats
String[]

Matrice di formati consentiti di s.An array of allowable formats of s. Per altre informazioni, vedere la sezione Osservazioni.For more information, see the Remarks section.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Oggetto che fornisce informazioni sul formato di s specifiche delle impostazioni cultura.An object that supplies culture-specific format information about s.

style
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

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

Restituisce

Oggetto equivalente alla data e all'ora contenute in s, come specificato da formats, provider e style.An object that is equivalent to the date and time contained in s, as specified by formats, provider, and style.

Eccezioni

Il parametro s è una stringa vuota.s is an empty string.

In alternativa-or- un elemento di formats è una stringa vuota.an element of formats is an empty string.

In alternativa-or- s non contiene data e ora che corrispondano a elementi di formats.s does not contain a date and time that corresponds to any element of formats.

In alternativa-or- Il componente relativo alle ore e l'identificatore AM/PM in s non corrispondono.The hour component and the AM/PM designator in s do not agree.

style contiene una combinazione non valida di valori di DateTimeStyles.style contains an invalid combination of DateTimeStyles values. Ad esempio, sia AssumeLocal che AssumeUniversal.For example, both AssumeLocal and AssumeUniversal.

Esempi

L'esempio seguente usa il DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) metodo per garantire che una stringa in un numero di possibili formati può essere analizzata correttamente.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.

Commenti

Il DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) metodo analizza la rappresentazione di stringa di una data che corrisponde a uno dei modelli assegnati per il formats parametro.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. Se la stringa s non corrispondono a uno di questi modelli con una delle varianti definite dal styles parametro, il metodo genera un 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. Oltre a confrontare s o a più schemi di formattazione, anziché a un singolo modello di formattazione, questo overload si comporta in modo identico al DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) (metodo).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.

Il s parametro contiene la data e ora da analizzare.The s parameter contains the date and time to parse. Se il s parametro contiene solo una volta e non una data, la data corrente viene usata, a meno che il style parametro include il DateTimeStyles.NoCurrentDateDefault flag, nel qual caso la data predefinita (DateTime.Date.MinValue) viene usato.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. Se il s parametro non contiene solo la data e ora, mezzanotte (00: 00:00) viene usato.If the s parameter contains only a date and no time, midnight (00:00:00) is used. Il style parametro determina inoltre se il s parametro può contenere leader, spazi vuoti interni o finali caratteri diversi da quelli consentiti da una delle stringhe di formato in 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.

Se s non contiene alcuna informazione di fuso orario, il Kind proprietà del valore restituito DateTime oggetto DateTimeKind.Unspecified.If s contains no time zone information, the Kind property of the returned DateTime object is DateTimeKind.Unspecified. Questo comportamento può essere modificato usando il DateTimeStyles.AssumeLocal flag, che restituisce un DateTime valore la cui proprietà Kind proprietà è DateTimeKind.Local, o utilizzando il DateTimeStyles.AssumeUniversal e DateTimeStyles.AdjustToUniversal flag, che restituisce un DateTime valore la cui proprietà Kind è di proprietà 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. Se s contiene informazioni sul fuso orario, l'ora viene convertita nell'ora locale, se necessario e il Kind proprietà del valore restituito DateTime è impostata su 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. Questo comportamento può essere modificato usando il DateTimeStyles.RoundtripKind flag di non convertire Coordinated Universal Time (UTC) in un'ora locale e impostare il Kind proprietà 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.

Il formats parametro contiene una matrice di criteri, uno dei quali s deve corrispondere esattamente se l'operazione di analisi abbia esito positivo.The formats parameter contains an array of patterns, one of which s must match exactly if the parse operation is to succeed. I modelli nel formats parametro è costituito da uno o più identificatori di formato personalizzati i Custom Date and Time Format Strings tabella o un identificatore di formato singolo standard, che identifica un criterio predefinito, dal Standard Date and Time Format Strings tabella.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.

Se non si utilizza i separatori di data o ora in un modello di formato personalizzato, usare la lingua inglese per il provider identificatore di formato di parametro e la forma più estesa di ogni personalizzata.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. Ad esempio, se si desidera specificare le ore nel modello, specificare la forma più estesa, "HH", anziché la forma più ristretta, "H".For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

Il styles parametro include uno o più membri del DateTimeStyles enumerazione che determina se e in cui lo spazio vuoto non è definito dal format possono essere visualizzati in s e che controllano il comportamento preciso dell'operazione di analisi.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. La tabella seguente descrive come ogni membro del DateTimeStyles enumerazione influisce sul funzionamento del ParseExact(String, String, IFormatProvider, DateTimeStyles) (metodo).The following table describes how each member of the DateTimeStyles enumeration affects the operation of the ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

Membro DateTimeStylesDateTimeStyles member DescrizioneDescription
AdjustToUniversal Analizza s e, se necessario, lo converte in formato UTC.Parses s and, if necessary, converts it to UTC. Se s include una differenza di fuso orario, oppure se s non contiene alcuna informazione di fuso orario, ma styles include il DateTimeStyles.AssumeLocal flag, il metodo analizza la stringa, le chiamate ToUniversalTime convertire l'oggetto restituito DateTime valore in formato UTC e imposta il Kind proprietà 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. Se s rappresenta il formato UTC, oppure se s non contiene informazioni sul fuso orario, ma styles include il DateTimeStyles.AssumeUniversal flag, il metodo analizza la stringa, non esegue alcuna conversione del fuso orario sull'oggetto restituito DateTime valore e imposta il Kind proprietà 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 tutti gli altri casi, il flag non ha alcun effetto.In all other cases, the flag has no effect.
AllowInnerWhite Specifica che lo spazio vuoto non è definito da format possono apparire tra qualsiasi singola data o un elemento relativo all'ora.Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite Specifica che lo spazio vuoto non è definito da format possono essere visualizzati all'inizio del s.Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite Specifica che lo spazio vuoto non è definito da format possono essere visualizzati alla fine di s.Specifies that white space not defined by format can appear at the end of s.
AllowWhiteSpaces Specifica che s può contenere iniziali, interni e gli spazi vuoti non è definiti da finali format.Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
AssumeLocal Specifica che se s non contiene informazioni sul fuso orario, si presuppone che rappresenti un'ora locale.Specifies that if s lacks any time zone information, it is assumed to represent a local time. A meno che il DateTimeStyles.AdjustToUniversal flag è presente, il Kind proprietà del valore restituito DateTime è impostato su DateTimeKind.Local.Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal Specifica che se s non contiene informazioni sul fuso orario, si presuppone per rappresentare l'ora UTC.Specifies that if s lacks any time zone information, it is assumed to represent UTC. A meno che il DateTimeStyles.AdjustToUniversal flag è presente, il metodo converte l'oggetto restituito DateTime valore rispetto all'ora UTC in ora locale e imposta relativo Kind proprietà 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 Se s contiene ora senza informazioni relative alla data, la data del valore restituito è impostata su DateTime.MinValue.Date.If s contains time without date information, the date of the return value is set to DateTime.MinValue.Date.
None Il s parametro analizzato usando i valori predefiniti.The s parameter is parsed using default values. Nessun spazio vuoto diverso dal quello presente in format è consentito.No white space other than that present in format is allowed. Se s non dispone di un componente relativo alla data, la data del valore restituito DateTime valore è impostato su 1/1/0001.If s lacks a date component, the date of the returned DateTime value is set to 1/1/0001. Se s non contiene alcuna informazione di fuso orario, il Kind proprietà del valore restituito DateTime è impostata su DateTimeKind.Unspecified.If s contains no time zone information, the Kind property of the returned DateTime object is set to DateTimeKind.Unspecified. Se è presente nelle informazioni sul fuso orario s, l'ora viene convertita nell'ora locale e il Kind proprietà del valore restituito DateTime è impostata su 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 Per le stringhe che contengono informazioni sul fuso orario, prova a impedire la conversione a una data e ora con relativi Kind impostata su 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. Questo flag è principalmente impedisce la conversione dell'ora UTC in ora locale.This flag primarily prevents the conversion of UTC times to local times.

La data e i simboli di tempo e stringhe (ad esempio i nomi dei giorni della settimana in un determinato linguaggio) usate nelle s sono definiti dal provider parametro, perché è il formato esatto di s se format è un formato standard stringa dell'identificatore.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. Il provider parametro può essere uno dei seguenti:The provider parameter can be any of the following:

Se provider viene null, il CultureInfo viene usato l'oggetto che corrisponde alla lingua corrente.If provider is null, the CultureInfo object that corresponds to the current culture is used.

Note per i chiamanti

Nel .NET Framework 4.NET Framework 4, il ParseExact metodo genera un FormatException se la stringa da analizzare include un componente di ora e un indicatore AM/PM non presenti nel contratto.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. Nel .NET Framework 3.5.NET Framework 3.5 , ignorando le versioni precedenti, l'indicatore AM/PM.In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Vedi anche

Si applica a