DateTime.TryParse Método

Definición

Convierte la representación de cadena especificada de una fecha y hora en el objeto DateTime equivalente y devuelve un valor que indica si la conversión se realizó correctamente.Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

Sobrecargas

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

Convierte la representación de cadena especificada de una fecha y hora en el objeto DateTime equivalente y devuelve un valor que indica si la conversión se realizó correctamente.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)

Convierte la representación de cadena especificada de una fecha y hora en su equivalente DateTime usando la información de formato de la referencia cultural y el estilo de formato especificados, y devuelve un valor que indica si la conversión tuvo éxito.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)

Comentarios

Importante

Las eras en los calendarios japoneses se basan en el reino del emperador y, por tanto, se espera que cambien.Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. Por ejemplo, el 1 de mayo de 2019 marcaba el comienzo de la era Reiwa en JapaneseCalendar y JapaneseLunisolarCalendar.For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Este cambio de era afecta a todas las aplicaciones que usan estos calendarios.Such a change of era affects all applications that use these calendars. Para obtener más información y determinar si sus aplicaciones están entre las afectadas, consulte Handling a new era in the Japanese calendar in .NET (Gestión de una nueva era del calendario japonés en .NET).See Handling a new era in the Japanese calendar in .NET for more information and to determine whether your applications are affected. Para obtener más información sobre cómo probar aplicaciones en sistemas Windows para garantizar que estén preparadas para el cambio de era, consulte Prepare your application for the Japanese era change (Preparación de la aplicación para el cambio de era japonesa).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. Consulte Trabajar con eras para ver las características de .NET que admiten calendarios con varias eras y procedimientos recomendados al trabajar con calendarios que admiten varias eras.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)

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

Parámetros

provider
IFormatProvider
result
DateTime

Devoluciones

TryParse(String, DateTime)

Convierte la representación de cadena especificada de una fecha y hora en el objeto DateTime equivalente y devuelve un valor que indica si la conversión se realizó correctamente.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

Parámetros

s
String

Cadena que contiene una fecha y hora que se van a convertir.A string containing a date and time to convert.

result
DateTime

El resultado que devuelve este método contiene el valor DateTime equivalente a la fecha y hora incluidas en s, si la conversión se realiza correctamente, o MinValue cuando se produce un error en la conversión.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. Se produce un error en la conversión cuando el parámetro s es null, es una cadena vacía ("") o no contiene una representación de cadena válida de una fecha y hora.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. Este parámetro se pasa sin inicializar.This parameter is passed uninitialized.

Devoluciones

true si el parámetro s se convierte correctamente; en caso contrario, false.true if the s parameter was converted successfully; otherwise, false.

Ejemplos

En el ejemplo siguiente se pasan varias cadenas de fecha y hora al método 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).

Comentarios

El método DateTime.TryParse(String, DateTime) es similar al método DateTime.Parse(String), salvo que el método TryParse(String, DateTime) no produce una excepción si se produce un error en la conversión.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 cadena s se analiza utilizando la información de formato del objeto DateTimeFormatInfo actual, proporcionado implícitamente por la referencia cultural del subproceso actual.The string s is parsed using formatting information in the current DateTimeFormatInfo object, which is supplied implicitly by the current thread culture.

Este método intenta omitir los datos no reconocidos, si es posible, y rellena la información de mes, día y año que falta con la fecha actual.This method tries to ignore unrecognized data, if possible, and fills in missing month, day, and year information with the current date. Si s solo contiene una fecha y ninguna hora, este método supone que la hora es 12:00 medianoche.If s contains only a date and no time, this method assumes the time is 12:00 midnight. Si s incluye un componente de fecha con un año de dos dígitos, se convierte en un año en el calendario actual de la referencia cultural actual basándose en el valor de la propiedad 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. Cualquier carácter de espacio en blanco inicial, interno o final en s se omite.Any leading, inner, or trailing white space character in s is ignored. La fecha y la hora se pueden correlacionar con un par de caracteres de signo de número iniciales y finales (' # ', U + 0023) y se pueden incluir con uno o más caracteres NULOs (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).

Dado que el método DateTime.TryParse(String, DateTime) intenta analizar la representación de cadena de una fecha y hora usando las reglas de formato de la referencia cultural actual, el intento de analizar una cadena determinada en distintas referencias culturales puede producir un error o devolver resultados diferentes.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. Si un formato de fecha y hora específico se va a analizar en distintas configuraciones regionales, use el método DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) o una de las sobrecargas del método TryParseExact y proporcione un especificador de 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.

Si s es la representación de cadena de un día bisiesto de un año bisiesto en el calendario actual, el método analiza s correctamente.If s is the string representation of a leap day in a leap year in the current calendar, the method parses s successfully. Si s es la representación en forma de cadena de un día bisiesto en un año no bisiesto en el calendario actual de la referencia cultural actual, se produce un error en la operación de análisis y el método devuelve 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.

Si s no contiene información de zona horaria, result contiene un valor @no__t 2 cuya propiedad Kind es DateTimeKind.Unspecified cuando el método vuelve.If s contains no time zone information, result contains a DateTime value whose Kind property is DateTimeKind.Unspecified when the method returns. Si la cadena que se va a analizar contiene información de zona horaria, result contiene un valor DateTime cuya propiedad Kind es DateTimeKind.Local cuando el método vuelve.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.

Notas a los autores de las llamadas

El formato se ve influenciado por las propiedades del objeto DateTimeFormatInfo actual, que de forma predeterminada se derivan del elemento configuración regional y de idioma del panel de control.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. El método TryParse puede producir un error inesperado y devolver False si las propiedades @no__t 2 y TimeSeparator actuales se establecen en el mismo valor.The TryParse method can unexpectedly fail and return False if the current DateSeparator and TimeSeparator properties are set to the same value.

Consulte también:

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Convierte la representación de cadena especificada de una fecha y hora en su equivalente DateTime usando la información de formato de la referencia cultural y el estilo de formato especificados, y devuelve un valor que indica si la conversión tuvo éxito.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

Parámetros

s
String

Cadena que contiene una fecha y hora que se van a convertir.A string containing a date and time to convert.

provider
IFormatProvider

Objeto que proporciona información de formato específica de la referencia cultural acerca de s.An object that supplies culture-specific formatting information about s.

styles
DateTimeStyles

Combinación bit a bit de valores de enumeración que define cómo se va a interpretar la fecha analizada respecto a la zona horaria actual o la fecha actual.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 valor que se especifica de forma habitual es None.A typical value to specify is None.

result
DateTime

El resultado que devuelve este método contiene el valor DateTime equivalente a la fecha y hora incluidas en s, si la conversión se realiza correctamente, o MinValue cuando se produce un error en la conversión.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. Se produce un error en la conversión cuando el parámetro s es null, es una cadena vacía ("") o no contiene una representación de cadena válida de una fecha y hora.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. Este parámetro se pasa sin inicializar.This parameter is passed uninitialized.

Devoluciones

true si el parámetro s se convierte correctamente; en caso contrario, false.true if the s parameter was converted successfully; otherwise, false.

Excepciones

styles no es un valor DateTimeStyles válido.styles is not a valid DateTimeStyles value.

o bien-or- styles contiene una combinación no válida de valores DateTimeStyles (por ejemplo, AssumeLocal y AssumeUniversal).styles contains an invalid combination of DateTimeStyles values (for example, both AssumeLocal and AssumeUniversal).

provider es una referencia cultural neutra y no se puede usar en una operación de análisis.provider is a neutral culture and cannot be used in a parsing operation.

Ejemplos

El ejemplo siguiente ilustra la DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) método.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.

Comentarios

El método DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) analiza una cadena que puede contener información de fecha, hora y zona horaria.The DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) method parses a string that can contain date, time, and time zone information. Es similar al método DateTime.Parse(String, IFormatProvider, DateTimeStyles), salvo que el método DateTime.TryParse(String, DateTime) no inicia una excepción si se produce un error en la conversión.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.

Este método intenta omitir los datos no reconocidos y analizar s completamente.This method attempts to ignore unrecognized data and parse s completely. Si s contiene una hora pero no una fecha, el método sustituye de forma predeterminada la fecha actual o, si styles incluye la marca NoCurrentDateDefault, sustituye a 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. Si s contiene una fecha pero no una hora, se usa 12:00 medianoche como el tiempo predeterminado.If s contains a date but no time, 12:00 midnight is used as the default time. Si una fecha está presente pero el componente de año consta de solo dos dígitos, se convierte en un año del calendario actual del parámetro provider basándose en el valor de la propiedad 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. Se omiten los caracteres de espacio en blanco iniciales, internos o finales de s.Any leading, inner, or trailing white space characters in s are ignored. La fecha y la hora se pueden correlacionar con un par de caracteres de signo de número iniciales y finales (' # ', U + 0023) y se pueden incluir con uno o más caracteres NULOs (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).

Los formatos válidos específicos para los elementos de fecha y hora, así como los nombres y símbolos usados en fechas y horas, se definen mediante el parámetro provider, que puede ser cualquiera de los siguientes: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:

Si provider es null, se usa la referencia cultural actual.If provider is null, the current culture is used.

Si s es la representación de cadena de un día bisiesto de un año bisiesto en el calendario actual, el método analiza s correctamente.If s is the string representation of a leap day in a leap year in the current calendar, the method parses s successfully. Si s es la representación en forma de cadena de un día bisiesto en un año no bisiesto en el calendario actual de provider, se produce un error en la operación de análisis y el método devuelve 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.

El parámetro styles define la interpretación precisa de la cadena analizada y cómo la operación de análisis debe controlarla.The styles parameter defines the precise interpretation of the parsed string and how the parse operation should handle it. Puede ser uno o más miembros de la enumeración DateTimeStyles, como se describe en la tabla siguiente.It can be one or more members of the DateTimeStyles enumeration, as described in the following table.

DateTimeStyles (miembro)DateTimeStyles member DescripciónDescription
AdjustToUniversal Analiza s y, si es necesario, lo convierte en UTC.Parses s and, if necessary, converts it to UTC. Si s incluye un ajuste de zona horaria o si s no contiene ninguna información de zona horaria pero styles incluye la marca DateTimeStyles.AssumeLocal, el método analiza la cadena, llama a ToUniversalTime para convertir el valor de DateTime devuelto a UTC y establece la propiedad Kind en DateTimeKind.Utc.If s includes a time zone offset, or if s contains no time zone information but styles includes the DateTimeStyles.AssumeLocal flag, the method parses the string, calls ToUniversalTime to convert the returned DateTime value to UTC, and sets the Kind property to DateTimeKind.Utc. Si s indica que representa la hora UTC, o si s no contiene información de zona horaria pero styles incluye la marca DateTimeStyles.AssumeUniversal, el método analiza la cadena, no realiza ninguna conversión de zona horaria en el valor DateTime devuelto y establece la propiedad Kind. a 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. En todos los demás casos, la marca no tiene ningún efecto.In all other cases, the flag has no effect.
AllowInnerWhite Aunque es válido, se omite este valor.Although valid, this value is ignored. Se permite el espacio en blanco interno en los elementos de fecha y hora de s.Inner white space is permitted in the date and time elements of s.
AllowLeadingWhite Aunque es válido, se omite este valor.Although valid, this value is ignored. Se permite el espacio en blanco inicial en los elementos de fecha y hora de s.Leading white space is permitted in the date and time elements of s.
AllowTrailingWhite Aunque es válido, se omite este valor.Although valid, this value is ignored. Se permite el espacio en blanco final en los elementos de fecha y hora de s.Trailing white space is permitted in the date and time elements of s.
AllowWhiteSpaces Especifica que s puede contener espacios en blanco iniciales, internos y finales.Specifies that s may contain leading, inner, and trailing white spaces. Éste es el comportamiento predeterminado.This is the default behavior. No se puede invalidar proporcionando un valor de enumeración DateTimeStyles más restrictivo, como DateTimeStyles.None.It cannot be overridden by supplying a more restrictive DateTimeStyles enumeration value such as DateTimeStyles.None.
AssumeLocal Especifica que si s carece de información de zona horaria, se supone que representa una hora local.Specifies that if s lacks any time zone information, it is assumed to represent a local time. A menos que esté presente la marca DateTimeStyles.AdjustToUniversal, la propiedad Kind del valor DateTime devuelto se establece en DateTimeKind.Local.Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal Especifica que si s carece de información de zona horaria, se supone que representa la hora UTC.Specifies that if s lacks any time zone information, it is assumed to represent UTC. A menos que esté presente la marca DateTimeStyles.AdjustToUniversal, el método convierte el valor DateTime devuelto de la hora UTC a la hora local y establece su propiedad Kind en 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 Aunque es válido, se omite este valor.Although valid, this value is ignored.
RoundtripKind En el caso de las cadenas que contienen información de zona horaria, intenta evitar la conversión de una cadena de fecha y hora en un valor DateTime con su propiedad Kind establecida en 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. Normalmente, este tipo de cadena se crea llamando al método DateTime.ToString(String) con los especificadores de formato estándar "o", "r" u "u".Typically, such a string is created by calling the DateTime.ToString(String) method using either the "o", "r", or "u" standard format specifiers.

Si s no contiene información de zona horaria, el método DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) devuelve un valor @no__t 2 cuya propiedad Kind es DateTimeKind.Unspecified a menos que una marca styles indique lo contrario.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. Si s incluye la zona horaria o la información de desplazamiento de zona horaria, el método DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) realiza cualquier conversión de hora necesaria y devuelve uno de los siguientes: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:

Este comportamiento se puede invalidar mediante el uso de la marca DateTimeStyles.RoundtripKind.This behavior can be overridden by using the DateTimeStyles.RoundtripKind flag.

Analizar referencias culturales personalizadasParsing Custom Cultures

Si analiza una cadena de fecha y hora generada para una referencia cultural personalizada, use el método TryParseExact en lugar del método TryParse para mejorar la probabilidad de que la operación de análisis se realice correctamente.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 cadena de fecha y hora de la referencia cultural personalizada puede ser complicada y difícil de analizar.A custom culture date and time string can be complicated and difficult to parse. El método TryParse intenta analizar una cadena con varios patrones de análisis implícitos; todos ellos podrían producir un error.The TryParse method attempts to parse a string with several implicit parse patterns, all of which might fail. Por el contrario, el método TryParseExact requiere que designe explícitamente uno o más patrones de análisis exactos que probablemente sean correctos.In contrast, the TryParseExact method requires you to explicitly designate one or more exact parse patterns that are likely to succeed.

Para obtener más información sobre las referencias culturales personalizadas, vea la clase System.Globalization.CultureAndRegionInfoBuilder.For more information about custom cultures, see the System.Globalization.CultureAndRegionInfoBuilder class.

Notas a los autores de las llamadas

El formato se ve influenciado por las propiedades del objeto DateTimeFormatInfo actual, proporcionado por el parámetro provider.Formatting is influenced by properties of the current DateTimeFormatInfo object, which is supplied by the provider parameter. El método TryParse puede producir un error inesperado y devolver False si las propiedades @no__t 2 y TimeSeparator actuales se establecen en el mismo valor.The TryParse method can unexpectedly fail and return False if the current DateSeparator and TimeSeparator properties are set to the same value.

Consulte también:

TryParse(ReadOnlySpan<Char>, DateTime)

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

Parámetros

result
DateTime

Devoluciones

Se aplica a