DateTime.TryParse Metodo

Definizione

Converte la rappresentazione di stringa specificata di una data e di un'ora nell'equivalente DateTime e restituisce un valore che indica se la conversione è stata eseguita correttamente.Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

Overload

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

Converte una rappresentazione in forma di intervallo di una data e di un'ora nell'equivalente DateTime usando le informazioni sul formato specifico delle impostazioni cultura e lo stile di formattazione specifici, quindi restituisce un valore che indica se la conversione è stata eseguita correttamente.Converts the span representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

TryParse(String, DateTime)

Converte la rappresentazione di stringa specificata di una data e di un'ora nell'equivalente DateTime e restituisce un valore che indica se la conversione è stata eseguita correttamente.Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Converte una determinata rappresentazione di stringa di una data e di un'ora nell'equivalente DateTime usando le informazioni sul formato specifico delle impostazioni cultura e lo stile di formattazione specifici, quindi restituisce un valore che indica se la conversione è stata eseguita correttamente.Converts the specified string representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

TryParse(ReadOnlySpan<Char>, DateTime)

Converte l'intervallo di caratteri specificato di una data e di un'ora nell'equivalente DateTime e restituisce un valore che indica se la conversione è stata eseguita correttamente.Converts the specified char span of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

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.

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

Converte una rappresentazione in forma di intervallo di una data e di un'ora nell'equivalente DateTime usando le informazioni sul formato specifico delle impostazioni cultura e lo stile di formattazione specifici, quindi restituisce un valore che indica se la conversione è stata eseguita correttamente.Converts the span representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider provider, System.Globalization.DateTimeStyles styles, out DateTime result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTime) As Boolean

Parametri

s
ReadOnlySpan<Char>

Intervallo contenente i caratteri che rappresentano la data e l'ora da convertire.A span containing the characters representing the date and time to convert.

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.

styles
DateTimeStyles

Combinazione bit per bit dei valori di enumerazione che definisce il modo di interpretare la data analizzata in relazione al fuso orario o alla data corrente.A bitwise combination of enumeration values that defines how to interpret the parsed date in relation to the current time zone or the current date. Un valore tipico da specificare è None.A typical value to specify is None.

result
DateTime

Quando questo metodo viene restituito, contiene il valore DateTime equivalente alla data e all'ora contenute nel parametro s, se la conversione riesce; in caso contrario, viene restituito MinValue.When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. La conversione ha esito negativo se il parametro s è null, è una stringa vuota ("") o non contiene una rappresentazione di stringa di una data e di un'ora valida.The conversion fails if the s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time. Questo parametro viene passato non inizializzato.This parameter is passed uninitialized.

Restituisce

true se il parametro s è stato convertito correttamente; in caso contrario, false.true if the s parameter was converted successfully; otherwise, false.

TryParse(String, DateTime)

Converte la rappresentazione di stringa specificata di una data e di un'ora nell'equivalente DateTime e restituisce un valore che indica se la conversione è stata eseguita correttamente.Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (string s, out DateTime result);
static member TryParse : string * DateTime -> bool
Public Shared Function TryParse (s As String, ByRef result As DateTime) As Boolean

Parametri

s
String

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

result
DateTime

Quando questo metodo viene restituito, contiene il valore DateTime equivalente alla data e all'ora contenute nel parametro s, se la conversione riesce; in caso contrario, viene restituito MinValue.When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. La conversione ha esito negativo se il parametro s è null, è una stringa vuota ("") o non contiene una rappresentazione di stringa di una data e di un'ora valida.The conversion fails if the s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time. Questo parametro viene passato non inizializzato.This parameter is passed uninitialized.

Restituisce

true se il parametro s è stato convertito correttamente; in caso contrario, false.true if the s parameter was converted successfully; otherwise, false.

Esempi

Nell'esempio seguente vengono passate un numero di stringhe di data e ora al metodo DateTime.TryParse(String, DateTime).The following example passes a number of date and time strings to the DateTime.TryParse(String, DateTime) method.

using namespace System;
using namespace System::Globalization;

void main()
{
   array<String^>^ dateStrings = { "05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8", 
                                   "2009-05-01T14:57:32.8375298-04:00", 
                                    "5/01/2008 14:57:32.80 -07:00", 
                                    "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM", 
                                    "Fri, 15 May 2009 20:10:57 GMT" };
   DateTime dateValue;

   Console::WriteLine("Attempting to parse strings using {0} culture.", 
                     CultureInfo::CurrentCulture->Name);
   for each (String^ dateString in dateStrings)
   {
      if (DateTime::TryParse(dateString, dateValue)) 
         Console::WriteLine("  Converted '{0}' to {1} ({2}).", dateString, 
                           dateValue, dateValue.Kind);
      else
         Console::WriteLine("  Unable to parse '{0}'.", dateString);
   }
}
// The example displays the following output: 
//    Attempting to parse strings using en-US culture. 
//       Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified). 
//       Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified). 
//       Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local). 
//       Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local). 
//       Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified). 
//       Unable to parse '16-05-2009 1:00:32 PM'. 
//       Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] dateStrings = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8",
                              "2009-05-01T14:57:32.8375298-04:00", "5/01/2008",
                              "5/01/2008 14:57:32.80 -07:00", 
                              "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM", 
                              "Fri, 15 May 2009 20:10:57 GMT" };
      DateTime dateValue;
      
      Console.WriteLine("Attempting to parse strings using {0} culture.", 
                        CultureInfo.CurrentCulture.Name);
      foreach (string dateString in dateStrings)
      {
         if (DateTime.TryParse(dateString, out dateValue)) 
            Console.WriteLine("  Converted '{0}' to {1} ({2}).", dateString, 
                              dateValue, dateValue.Kind);
         else
            Console.WriteLine("  Unable to parse '{0}'.", dateString);
      }
   }
}
// The example displays output like the following:
//    Attempting to parse strings using en-US culture.
//      Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
//
//      Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
//      Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
//      Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
//      Unable to parse '16-05-2009 1:00:32 PM'.
//      Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim dateStrings() As String = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8",
                                     "2009-05-01T14:57:32.8375298-04:00", "5/01/2008",
                                     "5/01/2008 14:57:32.80 -07:00",
                                     "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM",
                                     "Fri, 15 May 2009 20:10:57 GMT"}
      Dim dateValue As Date
      
      Console.WriteLine("Attempting to parse strings using {0} culture.", _
                        CultureInfo.CurrentCulture.Name)
      For Each dateString As String In dateStrings
         If Date.TryParse(dateString, dateValue) Then
            Console.WriteLine("  Converted '{0}' to {1} ({2}).", dateString, _
                              dateValue, dateValue.Kind)
         Else
            Console.WriteLine("  Unable to parse '{0}'.", dateString)
         End If
      Next
   End Sub
End Module
' The example displays output like the following:
'    Attempting to parse strings using en-US culture.
'      Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
'      Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
'      Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
'
'      Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
'      Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
'      Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
'      Unable to parse '16-05-2009 1:00:32 PM'.
'      Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).

Commenti

Il metodo DateTime.TryParse(String, DateTime) è simile al metodo DateTime.Parse(String), ad eccezione del fatto che il metodo TryParse(String, DateTime) non genera un'eccezione se la conversione non riesce.The DateTime.TryParse(String, DateTime) method is similar to the DateTime.Parse(String) method, except that the TryParse(String, DateTime) method does not throw an exception if the conversion fails.

La stringa s viene analizzata usando le informazioni di formattazione nell'oggetto DateTimeFormatInfo corrente, che viene fornito in modo implicito dalle impostazioni cultura del thread corrente.The string s is parsed using formatting information in the current DateTimeFormatInfo object, which is supplied implicitly by the current thread culture.

Questo metodo tenta di ignorare i dati non riconosciuti, se possibile, e riempie le informazioni mancanti relative a mese, giorno e anno con la data corrente.This method tries to ignore unrecognized data, if possible, and fills in missing month, day, and year information with the current date. Se s contiene solo una data e nessuna ora, questo metodo presuppone che l'ora sia 12:00 mezzanotte.If s contains only a date and no time, this method assumes the time is 12:00 midnight. Se s include un componente relativo alla data con anno a due cifre, viene convertito in un anno nel calendario corrente delle impostazioni cultura correnti in base al valore della proprietà Calendar.TwoDigitYearMax.If s includes a date component with a two-digit year, it is converted to a year in the current culture's current calendar based on the value of the Calendar.TwoDigitYearMax property. Qualsiasi carattere di spazio vuoto iniziali, interni o finali in s viene ignorato.Any leading, inner, or trailing white space character in s is ignored. La data e l'ora possono essere racchiuse tra parentesi quadre con una coppia di caratteri di CANCELLetto iniziali e finali (' #', U + 0023) e possono essere finali con uno o più caratteri NULL (U + 0000).The date and time can be bracketed with a pair of leading and trailing NUMBER SIGN characters ('#', U+0023), and can be trailed with one or more NULL characters (U+0000).

Poiché il metodo DateTime.TryParse(String, DateTime) tenta di analizzare la rappresentazione di stringa di una data e di un'ora utilizzando le regole di formattazione delle impostazioni cultura correnti, il tentativo di analizzare una determinata stringa tra impostazioni cultura diverse può avere esito negativo o restituire risultati diversi.Because the DateTime.TryParse(String, DateTime) method tries to parse the string representation of a date and time using the formatting rules of the current culture, trying to parse a particular string across different cultures can either fail or return different results. Se un formato di data e ora specifico verrà analizzato in impostazioni locali diverse, utilizzare il metodo DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) o uno degli overload del metodo TryParseExact e fornire un identificatore di formato.If a specific date and time format will be parsed across different locales, use the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method or one of the overloads of the TryParseExact method and provide a format specifier.

Se s è la rappresentazione di stringa di un giorno intercalare in un anno bisestile nel calendario corrente, il metodo analizza s correttamente.If s is the string representation of a leap day in a leap year in the current calendar, the method parses s successfully. Se s è la rappresentazione di stringa di un giorno intercalare in un anno non bisestile nel calendario corrente delle impostazioni cultura correnti, l'operazione di analisi ha esito negativo e il metodo restituisce false.If s is the string representation of a leap day in a non-leap year in the current culture's current calendar, the parse operation fails and the method returns false.

Se s non contiene informazioni sul fuso orario, result contiene un valore DateTime la cui proprietà Kind è DateTimeKind.Unspecified quando il metodo restituisce.If s contains no time zone information, result contains a DateTime value whose Kind property is DateTimeKind.Unspecified when the method returns. Se la stringa da analizzare contiene informazioni sul fuso orario, result contiene un valore DateTime la cui proprietà Kind è DateTimeKind.Local quando il metodo restituisce.If the string to be parsed contains time zone information, result contains a DateTime value whose Kind property is DateTimeKind.Local when the method returns.

Note per i chiamanti

La formattazione è influenzata dalle proprietà dell'oggetto DateTimeFormatInfo corrente, che per impostazione predefinita sono derivate dall'elemento Opzioni internazionali e della lingua nel pannello di controllo.Formatting is influenced by properties of the current DateTimeFormatInfo object, which by default are derived from the Regional and Language Options item in Control Panel. Il metodo TryParse può non riuscire in modo imprevisto e restituire False se le proprietà DateSeparator e TimeSeparator correnti sono impostate sullo stesso valore.The TryParse method can unexpectedly fail and return False if the current DateSeparator and TimeSeparator properties are set to the same value.

Vedi anche

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Converte una determinata rappresentazione di stringa di una data e di un'ora nell'equivalente DateTime usando le informazioni sul formato specifico delle impostazioni cultura e lo stile di formattazione specifici, quindi restituisce un valore che indica se la conversione è stata eseguita correttamente.Converts the specified string representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (string s, IFormatProvider provider, System.Globalization.DateTimeStyles styles, out DateTime result);
static member TryParse : string * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTime) As Boolean

Parametri

s
String

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

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.

styles
DateTimeStyles

Combinazione bit per bit dei valori di enumerazione che definisce il modo di interpretare la data analizzata in relazione al fuso orario o alla data corrente.A bitwise combination of enumeration values that defines how to interpret the parsed date in relation to the current time zone or the current date. Un valore tipico da specificare è None.A typical value to specify is None.

result
DateTime

Quando questo metodo viene restituito, contiene il valore DateTime equivalente alla data e all'ora contenute nel parametro s, se la conversione riesce; in caso contrario, viene restituito MinValue.When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. La conversione ha esito negativo se il parametro s è null, è una stringa vuota ("") o non contiene una rappresentazione di stringa di una data e di un'ora valida.The conversion fails if the s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time. Questo parametro viene passato non inizializzato.This parameter is passed uninitialized.

Restituisce

true se il parametro s è stato convertito correttamente; in caso contrario, false.true if the s parameter was converted successfully; otherwise, false.

Eccezioni

styles non è un valore DateTimeStyles valido.styles is not a valid DateTimeStyles value.

-oppure--or- styles contiene una combinazione non valida di valori di DateTimeStyles, ad esempio sia AssumeLocal che AssumeUniversal.styles contains an invalid combination of DateTimeStyles values (for example, both AssumeLocal and AssumeUniversal).

provider rappresenta impostazioni cultura non associate ad alcun paese e non può essere usato in un'operazione di analisi.provider is a neutral culture and cannot be used in a parsing operation.

Esempi

Nell'esempio seguente viene illustrato il metodo DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime).The following example illustrates the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string dateString;
      CultureInfo culture;
      DateTimeStyles styles;
      DateTime dateResult;
      
      // Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM";
      culture = CultureInfo.CreateSpecificCulture("en-US");
      styles = DateTimeStyles.None;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", 
                           dateString);
      
      // Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
      
      // Parse a date and time that is assumed to be local.
      // This time is five hours behind UTC. The local system's time zone is 
      // eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00";
      styles = DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
      
      // Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00";
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);

      // Assume a date and time string formatted for the fr-FR culture is the local 
      // time and convert it to UTC.
      dateString = "2008-03-01 10:00";
      culture = CultureInfo.CreateSpecificCulture("fr-FR");
      styles = DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
   }
}
// The example displays the following output to the console:
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
//       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
//       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
//       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim dateString As String
      Dim culture As CultureInfo
      Dim styles As DateTimeStyles 
      Dim dateResult As DateTime
      
      ' Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM"
      culture = CultureInfo.CreateSpecificCulture("en-US")
      styles = DateTimeStyles.None
      If DateTime.TryParse(dateString, culture, styles, dateResult) Then
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
      
      ' Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
      
      ' Parse a date and time that is assumed to be local.
      ' This time is five hours behind UTC. The local system's time zone is 
      ' eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00"
      styles = DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
      
      ' Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00"
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      

      ' Assume a date and time string formatted for the fr-FR culture is the local 
      ' time and convert it to UTC.
      dateString = "2008-03-01 10:00"
      culture = CultureInfo.CreateSpecificCulture("fr-FR")
      styles = DateTimeStyles.AdjustToUniversal Or DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
   End Sub
End Module
' The example displays the following output to the console:
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
'       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
'       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
'       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.

Commenti

Il metodo DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) analizza una stringa che può contenere informazioni su data, ora e fuso orario.The DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method parses a string that can contain date, time, and time zone information. È simile al metodo DateTime.Parse(String, IFormatProvider, DateTimeStyles), ad eccezione del fatto che il metodo DateTime.TryParse(String, DateTime) non genera un'eccezione se la conversione non riesce.It is similar to the DateTime.Parse(String, IFormatProvider, DateTimeStyles) method, except that the DateTime.TryParse(String, DateTime) method does not throw an exception if the conversion fails.

Questo metodo tenta di ignorare i dati non riconosciuti e di analizzare s completamente.This method attempts to ignore unrecognized data and parse s completely. Se s contiene un'ora ma nessuna data, per impostazione predefinita il metodo sostituisce la data corrente o, se styles include il flag NoCurrentDateDefault, sostituisce DateTime.Date.MinValue.If s contains a time but no date, the method by default substitutes the current date or, if styles includes the NoCurrentDateDefault flag, it substitutes DateTime.Date.MinValue. Se s contiene una data, ma non un'ora, viene usata la mezzanotte 12:00 come ora predefinita.If s contains a date but no time, 12:00 midnight is used as the default time. Se è presente una data, ma il relativo componente relativo all'anno è costituito da solo due cifre, viene convertito in un anno nel calendario corrente del parametro provider in base al valore della proprietà Calendar.TwoDigitYearMax.If a date is present but its year component consists of only two digits, it is converted to a year in the provider parameter's current calendar based on the value of the Calendar.TwoDigitYearMax property. Gli spazi vuoti iniziali, interni o finali nel s vengono ignorati.Any leading, inner, or trailing white space characters in s are ignored. La data e l'ora possono essere racchiuse tra parentesi quadre con una coppia di caratteri di CANCELLetto iniziali e finali (' #', U + 0023) e possono essere finali con uno o più caratteri NULL (U + 0000).The date and time can be bracketed with a pair of leading and trailing NUMBER SIGN characters ('#', U+0023), and can be trailed with one or more NULL characters (U+0000).

Formati validi specifici per gli elementi di data e ora, nonché i nomi e i simboli utilizzati in date e ore, sono definiti dal parametro provider, che può essere uno dei seguenti:Specific valid formats for date and time elements, as well as the names and symbols used in dates and times, are defined by the provider parameter, which can be any of the following:

Se provider è null, verranno usate le impostazioni cultura correnti.If provider is null, the current culture is used.

Se s è la rappresentazione di stringa di un giorno intercalare in un anno bisestile nel calendario corrente, il metodo analizza s correttamente.If s is the string representation of a leap day in a leap year in the current calendar, the method parses s successfully. Se s è la rappresentazione di stringa di un giorno intercalare in un anno non bisestile nel calendario corrente di provider, l'operazione di analisi ha esito negativo e il metodo restituisce false.If s is the string representation of a leap day in a non-leap year in the current calendar of provider, the parse operation fails and the method returns false.

Il parametro styles definisce l'interpretazione esatta della stringa analizzata e il modo in cui l'operazione di analisi deve gestirla.The styles parameter defines the precise interpretation of the parsed string and how the parse operation should handle it. Può essere uno o più membri dell'enumerazione DateTimeStyles, come descritto nella tabella seguente.It can be one or more members of the DateTimeStyles enumeration, as described in the following table.

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 o se s non contiene informazioni sul fuso orario ma styles include il flag di DateTimeStyles.AssumeLocal, il metodo analizza la stringa, chiama ToUniversalTime per convertire il valore di 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 di DateTimeStyles.AssumeUniversal, il metodo analizza la stringa, non esegue alcuna conversione del fuso orario sul valore di DateTime restituito e imposta la proprietà Kind su 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 Sebbene valido, questo valore viene ignorato.Although valid, this value is ignored. Gli spazi vuoti interni sono consentiti negli elementi di data e ora di s.Inner white space is permitted in the date and time elements of s.
AllowLeadingWhite Sebbene valido, questo valore viene ignorato.Although valid, this value is ignored. Gli spazi vuoti iniziali sono consentiti negli elementi di data e ora di s.Leading white space is permitted in the date and time elements of s.
AllowTrailingWhite Sebbene valido, questo valore viene ignorato.Although valid, this value is ignored. Gli spazi vuoti finali sono consentiti negli elementi di data e ora di s.Trailing white space is permitted in the date and time elements of s.
AllowWhiteSpaces Specifica che s possono contenere spazi vuoti iniziali, interni e finali.Specifies that s may contain leading, inner, and trailing white spaces. Comportamento predefinito.This is the default behavior. Non è possibile eseguirne l'override fornendo un valore di enumerazione DateTimeStyles più restrittivo, ad esempio DateTimeStyles.None.It cannot be overridden by supplying a more restrictive DateTimeStyles enumeration value such as DateTimeStyles.None.
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 di DateTimeStyles.AdjustToUniversal, la proprietà Kind del valore restituito DateTime viene 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 di 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.
None Sebbene valido, questo valore viene ignorato.Although valid, this value is ignored.
RoundtripKind Per le stringhe che contengono informazioni sul fuso orario, tenta di impedire la conversione di una stringa di data e ora in un valore DateTime con la relativa proprietà Kind impostata su DateTimeKind.Local.For strings that contain time zone information, tries to prevent the conversion of a date and time string to a DateTime value with its Kind property set to DateTimeKind.Local. In genere, una stringa di questo tipo viene creata chiamando il metodo DateTime.ToString(String) usando gli identificatori di formato standard "o", "r" o "u".Typically, such a string is created by calling the DateTime.ToString(String) method using either the "o", "r", or "u" standard format specifiers.

Se s non contiene informazioni sul fuso orario, il metodo DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) restituisce un valore DateTime la cui proprietà Kind è DateTimeKind.Unspecified a meno che un flag di styles non indichi diversamente.If s contains no time zone information, the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method returns a DateTime value whose Kind property is DateTimeKind.Unspecified unless a styles flag indicates otherwise. Se s include informazioni sul fuso orario o sull'offset del fuso orario, il metodo DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) esegue qualsiasi conversione temporale necessaria e restituisce uno dei seguenti elementi:If s includes time zone or time zone offset information, the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method performs any necessary time conversion and returns one of the following:

È possibile eseguire l'override di questo comportamento usando il flag DateTimeStyles.RoundtripKind.This behavior can be overridden by using the DateTimeStyles.RoundtripKind flag.

Analisi di impostazioni cultura personalizzateParsing Custom Cultures

Se si analizza una stringa di data e ora generata per le impostazioni cultura personalizzate, utilizzare il metodo TryParseExact anziché il metodo TryParse per migliorare la probabilità che l'operazione di analisi abbia esito positivo.If you parse a date and time string generated for a custom culture, use the TryParseExact method instead of the TryParse method to improve the probability that the parse operation will succeed. Una stringa di data e ora personalizzata delle impostazioni cultura può essere complessa e difficile da analizzare.A custom culture date and time string can be complicated and difficult to parse. Il metodo TryParse tenta di analizzare una stringa con diversi modelli di analisi implicita, che potrebbero avere esito negativo.The TryParse method attempts to parse a string with several implicit parse patterns, all of which might fail. Al contrario, il metodo TryParseExact richiede di designare in modo esplicito uno o più modelli di analisi esatti che probabilmente hanno esito positivo.In contrast, the TryParseExact method requires you to explicitly designate one or more exact parse patterns that are likely to succeed.

Per ulteriori informazioni sulle impostazioni cultura personalizzate, vedere la classe System.Globalization.CultureAndRegionInfoBuilder.For more information about custom cultures, see the System.Globalization.CultureAndRegionInfoBuilder class.

Note per i chiamanti

La formattazione è influenzata dalle proprietà dell'oggetto DateTimeFormatInfo corrente, fornito dal parametro provider.Formatting is influenced by properties of the current DateTimeFormatInfo object, which is supplied by the provider parameter. Il metodo TryParse può non riuscire in modo imprevisto e restituire False se le proprietà DateSeparator e TimeSeparator correnti sono impostate sullo stesso valore.The TryParse method can unexpectedly fail and return False if the current DateSeparator and TimeSeparator properties are set to the same value.

Vedi anche

TryParse(ReadOnlySpan<Char>, DateTime)

Converte l'intervallo di caratteri specificato di una data e di un'ora nell'equivalente DateTime e restituisce un valore che indica se la conversione è stata eseguita correttamente.Converts the specified char span of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (ReadOnlySpan<char> s, out DateTime result);
static member TryParse : ReadOnlySpan<char> * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As DateTime) As Boolean

Parametri

s
ReadOnlySpan<Char>

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

result
DateTime

Quando questo metodo viene restituito, contiene il valore DateTime equivalente alla data e all'ora contenute nel parametro s, se la conversione riesce; in caso contrario, viene restituito MinValue.When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. La conversione ha esito negativo se il parametro s è null, è una stringa vuota ("") o non contiene una rappresentazione di stringa di una data e di un'ora valida.The conversion fails if the s parameter is null, is an empty string (""), or does not contain a valid string representation of a date and time. Questo parametro viene passato non inizializzato.This parameter is passed uninitialized.

Restituisce

true se il parametro s è stato convertito correttamente; in caso contrario, false.true if the s parameter was converted successfully; otherwise, false.

Si applica a