DateTime.ParseExact Metodo

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)

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>, 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)

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)

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

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

format
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

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 è null.s or format is null.

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.

-oppure--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 metodo ParseExact.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 metodo DateTime.ParseExact(String, String, IFormatProvider) analizza la rappresentazione di stringa di una data, che deve essere nel formato definito dal parametro format.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 anche che gli elementi <Date > e <Time > della rappresentazione di stringa di una data e di un'ora vengano visualizzati nell'ordine specificato da format e che s non dispongano di spazi vuoti diversi da quelli consentiti da 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 priva di elemento time e l'operazione di analisi ha esito positivo, il valore DateTime risultante avrà l'ora 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 elemento data e l'operazione di analisi ha esito positivo, il valore DateTime risultante avrà 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, la proprietà Kind del valore DateTime restituito è 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 rappresenta l'ora in un determinato fuso orario e format consente di presentare le informazioni sul fuso orario, ad esempio se format è uguale agli identificatori di formato standard "o", "r" o "u" oppure se contiene gli identificatori di formato personalizzati "z", "ZZ" o "zzz" ), la proprietà Kind del valore DateTime restituito è 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 parametro format è una stringa che contiene un singolo identificatore di formato standard o uno o più identificatori di formato personalizzati 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 stringhe di formato di data e ora standard o stringhe di formato di data e ora personalizzate.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 include separatori di data e ora (ad esempio "yyyyMMddHHmm"), usare la lingua inglese per il parametro provider e la forma più ampia di ogni identificatore di formato personalizzato.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. Se ad esempio si desidera specificare le ore nel modello di formato, specificare il formato più ampio, ovvero "HH", anziché il formato più piccolo, "H".For example, if you want to specify hours in the format pattern, specify the wider form, "HH", instead of the narrower form, "H".

Le stringhe e i simboli di data e ora specifici, ad esempio i nomi dei giorni della settimana in una determinata lingua, usati in s sono definiti dal parametro provider, così come il formato preciso di s se format è una stringa dell'identificatore di formato 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. Il parametro provider può essere uno dei seguenti:The provider parameter can be any of the following:

Se provider è null, viene utilizzato l'oggetto CultureInfo che corrisponde alle impostazioni cultura correnti.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 metodo ParseExact genera una FormatException se la stringa da analizzare contiene un componente relativo all'ora e un indicatore AM/PM che non sono concordati.In the .NET Framework 4.NET Framework 4, the ParseExact method throws a FormatException if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. In .NET Framework 3.5.NET Framework 3.5 e versioni precedenti, l'indicatore AM/PM viene ignorato.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)

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>
provider
IFormatProvider

Restituisce

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[]
provider
IFormatProvider

Restituisce

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

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

format
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

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

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 è null.s or format is null.

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

-oppure--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 metodo ParseExact(String, String, IFormatProvider).The following example demonstrates the ParseExact(String, String, IFormatProvider) method. Si noti che la stringa "5/01/2009 8:30 AM" non può essere analizzata correttamente quando il parametro styles è uguale a DateTimeStyles.None perché gli spazi iniziali non sono consentiti 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 09:00" non può essere analizzata correttamente con un format di "MM/GG/yyyyhh: mm" perché la stringa di data non precede il numero del mese con uno zero principale, come richiesto da format.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 metodo DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) analizza la rappresentazione di stringa di una data, che deve essere in un formato definito dal parametro format.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. Richiede anche che gli elementi data e ora in s siano visualizzati nell'ordine specificato da 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 parametro format, con le varianti definite dal parametro style, 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 metodo DateTime.Parse(String, IFormatProvider, DateTimeStyles) analizza la rappresentazione di stringa di una data in uno dei formati riconosciuti dall'oggetto DateTimeFormatInfo del provider di formato.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 metodo DateTime.Parse(String, IFormatProvider, DateTimeStyles) consente inoltre di visualizzare gli elementi di data e ora in s 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 parametro s contiene solo un'ora e nessuna data, viene utilizzata la data corrente, a meno che il parametro style includa il flag DateTimeStyles.NoCurrentDateDefault, nel qual caso viene utilizzata la data predefinita (DateTime.Date.MinValue).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 parametro s contiene solo una data e nessuna ora, viene utilizzata la mezzanotte (00:00:00).If the s parameter contains only a date and no time, midnight (00:00:00) is used. Il parametro style determina anche se il parametro s può contenere spazi vuoti iniziali, interni o finali.The style parameter also determines whether the s parameter can contain leading, inner, or trailing white space characters.

Se s non contiene informazioni sul fuso orario, la proprietà Kind dell'oggetto DateTime restituito è 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 flag DateTimeStyles.AssumeLocal, che restituisce un valore DateTime la cui proprietà Kind è DateTimeKind.Local, oppure usando i flag DateTimeStyles.AssumeUniversal e DateTimeStyles.AdjustToUniversal, che restituisce un valore DateTime la cui proprietà Kind è 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 la proprietà Kind dell'oggetto DateTime restituito è 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 utilizzando il flag DateTimeStyles.RoundtripKind per non convertire l'ora UTC (Coordinated Universal Time) in un'ora locale e impostare la proprietà Kind su 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 parametro format definisce il modello obbligatorio del parametro s.The format parameter defines the required pattern of the s parameter. Può essere costituito da uno o più identificatori di formato personalizzati della tabella delle stringhe di formato di data e ora personalizzato o da un singolo identificatore di formato standard, che identifica un modello predefinito, dalla tabella delle stringhe di formato di data e ora 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.

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

Nota

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

Il parametro styles include uno o più membri dell'enumerazione DateTimeStyles che determinano se gli spazi vuoti non definiti da 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. Nella tabella seguente viene descritto il modo in cui ogni membro dell'enumerazione DateTimeStyles influiscono sul funzionamento del metodo ParseExact(String, String, IFormatProvider, DateTimeStyles).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 DescriptionDescription
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 o se s non contiene informazioni sul fuso orario ma styles include il flag DateTimeStyles.AssumeLocal, il metodo analizza la stringa, chiama ToUniversalTime per convertire il valore DateTime restituito in formato UTC e imposta la proprietà Kind su 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 indica che rappresenta l'ora UTC o se s non contiene informazioni sul fuso orario ma styles include il flag DateTimeStyles.AssumeUniversal, il metodo analizza la stringa, non esegue alcuna conversione del fuso orario sul valore DateTime restituito e imposta la proprietà Kind. per 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 gli spazi vuoti non definiti da format possono comparire tra qualsiasi singolo elemento data o ora.Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite Specifica che gli spazi vuoti non definiti da format possono essere visualizzati all'inizio di s.Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite Specifica che gli spazi vuoti non definiti da format possono apparire 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 spazi vuoti iniziali, interni e finali non definiti da format.Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
AssumeLocal Specifica che se s non dispone di informazioni sul fuso orario, si presuppone che rappresenti l'ora locale.Specifies that if s lacks any time zone information, it is assumed to represent a local time. A meno che non sia presente il flag DateTimeStyles.AdjustToUniversal, la proprietà Kind del valore restituito DateTime è impostata 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 dispone di informazioni sul fuso orario, si presuppone che rappresenti l'ora UTC.Specifies that if s lacks any time zone information, it is assumed to represent UTC. A meno che non sia presente il flag DateTimeStyles.AdjustToUniversal, il metodo converte il valore DateTime restituito dall'ora UTC all'ora locale e imposta la relativa proprietà Kind su 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 l'ora senza informazioni sulla 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 parametro s viene analizzato utilizzando i valori predefiniti.The s parameter is parsed using default values. Non sono consentiti spazi vuoti diversi da quelli presenti in format.No white space other than that present in format is allowed. Se s manca un componente di data, la data del valore restituito DateTime viene impostata 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 informazioni sul fuso orario, la proprietà Kind dell'oggetto DateTime restituito è 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 le informazioni sul fuso orario sono presenti nel s, l'ora viene convertita nell'ora locale e la proprietà Kind dell'oggetto DateTime restituito è 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, tenta di impedire la conversione a una data e a un'ora del valore DateTime con la relativa proprietà 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 impedisce principalmente la conversione dell'ora UTC in ore locali.This flag primarily prevents the conversion of UTC times to local times.

Le stringhe e i simboli di data e ora specifici, ad esempio i nomi dei giorni della settimana in una determinata lingua, usati in s sono definiti dal parametro provider, così come il formato esatto di s se format è una stringa dell'identificatore di formato 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. Il parametro provider può essere uno dei seguenti:The provider parameter can be any of the following:

Se provider è null, viene utilizzato l'oggetto CultureInfo che corrisponde alle impostazioni cultura correnti.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 metodo ParseExact genera una FormatException se la stringa da analizzare contiene un componente relativo all'ora e un indicatore AM/PM che non sono concordati.In the .NET Framework 4.NET Framework 4, the ParseExact method throws a FormatException if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. In .NET Framework 3.5.NET Framework 3.5 e versioni precedenti, l'indicatore AM/PM viene ignorato.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)

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

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

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

style
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

s o formats è null.s or formats is null.

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.

-oppure--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 usato il metodo DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) per assicurarsi che una stringa in un numero di formati possibili possa 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 metodo DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) analizza la rappresentazione di stringa di una data corrispondente a uno dei modelli assegnati al parametro formats.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 corrisponde a uno di questi modelli con una delle varianti definite dal parametro styles, 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. A parte il confronto tra s e più modelli di formattazione, anziché un singolo modello di formattazione, questo overload si comporta in modo identico al metodo DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles).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 parametro s contiene la data e l'ora da analizzare.The s parameter contains the date and time to parse. Se il parametro s contiene solo un'ora e nessuna data, viene utilizzata la data corrente, a meno che il parametro style includa il flag DateTimeStyles.NoCurrentDateDefault, nel qual caso viene utilizzata la data predefinita (DateTime.Date.MinValue).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 parametro s contiene solo una data e nessuna ora, viene utilizzata la mezzanotte (00:00:00).If the s parameter contains only a date and no time, midnight (00:00:00) is used. Il parametro style determina anche se il parametro s può contenere spazi vuoti iniziali, interni o finali 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 informazioni sul fuso orario, la proprietà Kind dell'oggetto DateTime restituito è 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 flag DateTimeStyles.AssumeLocal, che restituisce un valore DateTime la cui proprietà Kind è DateTimeKind.Local, oppure usando i flag DateTimeStyles.AssumeUniversal e DateTimeStyles.AdjustToUniversal, che restituisce un valore DateTime la cui proprietà Kind è 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 la proprietà Kind dell'oggetto DateTime restituito è 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 utilizzando il flag DateTimeStyles.RoundtripKind per non convertire l'ora UTC (Coordinated Universal Time) in un'ora locale e impostare la proprietà Kind su 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 parametro formats contiene una matrice di modelli, uno dei quali s deve corrispondere esattamente se l'operazione di analisi ha 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 parametro formats sono costituiti da uno o più identificatori di formato personalizzati della tabella delle stringhe di formato di data e ora personalizzato o da un singolo identificatore di formato standard, che identifica un modello predefinito, dalla data e dall'ora standard Tabella stringhe di formato .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 usano i separatori di data o ora in un modello di formato personalizzato, usare la lingua inglese per il parametro provider e la forma più ampia di ogni identificatore di formato personalizzato.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. Se ad esempio si desidera specificare le ore nel criterio, specificare il formato più ampio, ovvero "HH", anziché il formato più piccolo, "H".For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

Il parametro styles include uno o più membri dell'enumerazione DateTimeStyles che determinano se gli spazi vuoti non definiti da 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. Nella tabella seguente viene descritto il modo in cui ogni membro dell'enumerazione DateTimeStyles influiscono sul funzionamento del metodo ParseExact(String, String, IFormatProvider, DateTimeStyles).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 DescriptionDescription
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 o se s non contiene informazioni sul fuso orario ma styles include il flag DateTimeStyles.AssumeLocal, il metodo analizza la stringa, chiama ToUniversalTime per convertire il valore DateTime restituito in formato UTC e imposta la proprietà Kind su 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 indica che rappresenta l'ora UTC o se s non contiene informazioni sul fuso orario ma styles include il flag DateTimeStyles.AssumeUniversal, il metodo analizza la stringa, non esegue alcuna conversione del fuso orario sul valore DateTime restituito e imposta la proprietà Kind. per 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 gli spazi vuoti non definiti da format possono comparire tra qualsiasi singolo elemento data o ora.Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite Specifica che gli spazi vuoti non definiti da format possono essere visualizzati all'inizio di s.Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite Specifica che gli spazi vuoti non definiti da format possono apparire 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 spazi vuoti iniziali, interni e finali non definiti da format.Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
AssumeLocal Specifica che se s non dispone di informazioni sul fuso orario, si presuppone che rappresenti l'ora locale.Specifies that if s lacks any time zone information, it is assumed to represent a local time. A meno che non sia presente il flag DateTimeStyles.AdjustToUniversal, la proprietà Kind del valore restituito DateTime è impostata 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 dispone di informazioni sul fuso orario, si presuppone che rappresenti l'ora UTC.Specifies that if s lacks any time zone information, it is assumed to represent UTC. A meno che non sia presente il flag DateTimeStyles.AdjustToUniversal, il metodo converte il valore DateTime restituito dall'ora UTC all'ora locale e imposta la relativa proprietà Kind su 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 l'ora senza informazioni sulla 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 parametro s viene analizzato utilizzando i valori predefiniti.The s parameter is parsed using default values. Non sono consentiti spazi vuoti diversi da quelli presenti in format.No white space other than that present in format is allowed. Se s manca un componente di data, la data del valore restituito DateTime viene impostata 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 informazioni sul fuso orario, la proprietà Kind dell'oggetto DateTime restituito è 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 le informazioni sul fuso orario sono presenti nel s, l'ora viene convertita nell'ora locale e la proprietà Kind dell'oggetto DateTime restituito è 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, tenta di impedire la conversione a data e ora con la relativa proprietà 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 impedisce principalmente la conversione dell'ora UTC in ore locali.This flag primarily prevents the conversion of UTC times to local times.

Le stringhe e i simboli di data e ora specifici, ad esempio i nomi dei giorni della settimana in una determinata lingua, usati in s sono definiti dal parametro provider, così come il formato esatto di s se format è una stringa dell'identificatore di formato 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. Il parametro provider può essere uno dei seguenti:The provider parameter can be any of the following:

Se provider è null, viene utilizzato l'oggetto CultureInfo che corrisponde alle impostazioni cultura correnti.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 metodo ParseExact genera una FormatException se la stringa da analizzare contiene un componente relativo all'ora e un indicatore AM/PM che non sono concordati.In the .NET Framework 4.NET Framework 4, the ParseExact method throws a FormatException if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. In .NET Framework 3.5.NET Framework 3.5 e versioni precedenti, l'indicatore AM/PM viene ignorato.In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Vedi anche

Si applica a