DateTime.TryParseExact Método

Definición

Convierte la representación de cadena especificada de una fecha y hora en el objeto DateTime equivalente.Converts the specified string representation of a date and time to its DateTime equivalent. El formato de la representación de cadena debe coincidir exactamente con un formato ya especificado.The format of the string representation must match a specified format exactly. El método devuelve un valor que indica si la conversión se realizó correctamente.The method returns a value that indicates whether the conversion succeeded.

Sobrecargas

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

Convierte la representación de cadena especificada de una fecha y hora en el objeto DateTime equivalente, usando el formato, la información de formato específica de la referencia cultural y el estilo especificados.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. El formato de la representación de cadena debe coincidir exactamente con el formato especificado.The format of the string representation must match the specified format exactly. El método devuelve un valor que indica si la conversión se realizó correctamente.The method returns a value that indicates whether the conversion succeeded.

TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)

Convierte la representación de cadena especificada de una fecha y hora en el objeto DateTime equivalente, usando la matriz de formatos, la información de formato específica de la referencia cultural y el estilo especificados.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. El formato de la representación de cadena debe coincidir exactamente con al menos uno de los formatos especificados.The format of the string representation must match at least one of the specified formats exactly. El método devuelve un valor que indica si la conversión se realizó correctamente.The method returns a value that indicates whether the conversion succeeded.

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.

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

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

Parámetros

format
ReadOnlySpan<Char>
provider
IFormatProvider
result
DateTime

Devoluciones

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

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

Parámetros

formats
String[]
provider
IFormatProvider
result
DateTime

Devoluciones

TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)

Convierte la representación de cadena especificada de una fecha y hora en el objeto DateTime equivalente, usando el formato, la información de formato específica de la referencia cultural y el estilo especificados.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. El formato de la representación de cadena debe coincidir exactamente con el formato especificado.The format of the string representation must match the specified format exactly. El método devuelve un valor que indica si la conversión se realizó correctamente.The method returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParseExact(System::String ^ s, System::String ^ format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (string s, string format, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As String, format As String, provider As IFormatProvider, style 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.

format
String

Formato requerido de s.The required format of s.

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.

style
DateTimeStyles

Combinación bit a bit de uno o varios valores de enumeración que indica el formato permitido de s.A bitwise combination of one or more enumeration values that indicate the permitted format of s.

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 producirá un error en la conversión cuando el parámetro s o format sea null, una cadena vacía o no contenga una fecha y una hora que correspondan al modelo especificado en format.The conversion fails if either the s or format parameter is null, is an empty string, or does not contain a date and time that correspond to the pattern specified in format. Este parámetro se pasa sin inicializar.This parameter is passed uninitialized.

Devoluciones

true si s se convirtió correctamente; en caso contrario, false.true if s 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).

Ejemplos

En el ejemplo siguiente se muestra el método DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime).The following example demonstrates the DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) method. Tenga en cuenta que la cadena "5/01/2009 8:30 AM" no se puede analizar correctamente cuando el parámetro styles es igual a DateTimeStyles.None porque format no permite los espacios iniciales.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. Además, la cadena "5/01/2009 09:00" no se puede analizar correctamente con un format de "MM/DD/yyyyhh: mm" porque la cadena de fecha no precede al número del mes con un cero a la izquierda, ya que format requiere.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";
      if (DateTime.TryParseExact(dateString, "g", enUS, 
                                 DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Allow a leading space in the date string.
      if (DateTime.TryParseExact(dateString, "g", enUS, 
                                 DateTimeStyles.AllowLeadingWhite, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      
      // Use custom formats with M and MM.
      dateString = "5/01/2009 09:00";
      if (DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, 
                                 DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Allow a leading space in the date string.
      if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, 
                              DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         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"; 
      if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, 
                              DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Allow a leading space in the date string.
      if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, 
                              DateTimeStyles.AdjustToUniversal, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
           
      // Parse a string representing UTC.
      dateString = "2008-06-11T16:11:20.0904778Z";
      if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, 
                                     DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, 
                                 DateTimeStyles.RoundtripKind, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         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

Public 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"
      If Date.TryParseExact(dateString, "g", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      ' Allow a leading space in the date string.
      If Date.TryParseExact(dateString, "g", enUS, _
                            DateTimeStyles.AllowLeadingWhite, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      
      ' Use custom formats with M and MM.
      dateString = "5/01/2009 09:00"
      If Date.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      ' Allow a leading space in the date string.
      If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If

      ' Parse a string with time zone information.
      dateString = "05/01/2009 01:30:42 PM -05:00" 
      If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      ' Allow a leading space in the date string.
      If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
                            DateTimeStyles.AdjustToUniversal, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
           
      ' Parse a string representing UTC.
      dateString = "2008-06-11T16:11:20.0904778Z"
      If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
                                     DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      
      If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
                            DateTimeStyles.RoundtripKind, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
   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).

Comentarios

El método DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) analiza la representación de cadena de una fecha, que debe estar en el formato definido por el parámetro format.The DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) method parses the string representation of a date, which must be in the format defined by the format parameter. Es similar al método DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles), salvo que el método TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) no inicia una excepción si se produce un error en la conversión.It is similar to the DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) method, except that the TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) method does not throw an exception if the conversion fails.

El parámetro s contiene la fecha y la hora que se van a analizar y deben estar en un formato definido por el parámetro format.The s parameter contains the date and time to parse and must be in a format defined by the format parameter. Si los elementos de fecha, hora y zona horaria están presentes en s, también deben aparecer en el orden especificado por format.If date, time, and time zone elements are present in s, they must also appear in the order specified by format. Si format define una fecha sin ningún elemento de hora y la operación de análisis se realiza correctamente, el valor de DateTime resultante tiene una hora de medianoche (00:00:00).If format defines a date with no time element and the parse operation succeeds, the resulting DateTime value has a time of midnight (00:00:00). Si format define una hora sin ningún elemento de fecha y la operación de análisis se realiza correctamente, el valor de DateTime resultante de forma predeterminada tiene una fecha de @no__t 2 o tiene una fecha de DateTime.MinValue.Date si styles incluye la marca DateTimeStyles.NoCurrentDateDefault.If format defines a time with no date element and the parse operation succeeds, the resulting DateTime value by default has a date of DateTime.Now.Date, or it has a date of DateTime.MinValue.Date if styles includes the DateTimeStyles.NoCurrentDateDefault flag. El parámetro style determina si el parámetro s puede contener caracteres de espacio en blanco iniciales, internos o finales.The style parameter determines whether the s parameter can contain leading, inner, or trailing white space characters.

Si s no contiene información de zona horaria, la propiedad Kind del objeto DateTime devuelto es DateTimeKind.Unspecified.If s contains no time zone information, the Kind property of the returned DateTime object is DateTimeKind.Unspecified. Este comportamiento se puede cambiar mediante el uso de la marca DateTimeStyles.AssumeLocal, que devuelve un valor DateTime cuya propiedad Kind es DateTimeKind.Local o mediante las marcas DateTimeStyles.AssumeUniversal y DateTimeStyles.AdjustToUniversal, que devuelve un valor DateTime cuya propiedad Kind es DateTimeKind.Utc.This behavior can be changed by using the DateTimeStyles.AssumeLocal flag, which returns a DateTime value whose Kind property is DateTimeKind.Local, or by using the DateTimeStyles.AssumeUniversal and DateTimeStyles.AdjustToUniversal flags, which returns a DateTime value whose Kind property is DateTimeKind.Utc. Si contiene información de zona horaria, la hora se convierte a la hora local, si es necesario, y la propiedad Kind del objeto DateTime devuelto se establece en 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. Este comportamiento se puede cambiar mediante el uso de la marca DateTimeStyles.RoundtripKind para no convertir la hora universal coordinada (UTC) a una hora local y establecer la propiedad Kind en 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.

El parámetro format contiene un patrón que corresponde al formato esperado del parámetro s.The format parameter contains a pattern that corresponds to the expected format of the s parameter. El patrón del parámetro format consta de uno o varios especificadores de formato personalizado de la tabla de cadenas de formato de fecha y hora personalizado , o un único especificador de formato estándar, que identifica un patrón predefinido, de la fecha y hora estándar. Tabla de cadenas de formato.The pattern in the format parameter consists of one or more custom format specifiers from the Custom Date and Time Format Strings table, or a single standard format specifier, which identifies a predefined pattern, from the Standard Date and Time Format Strings table.

Si no usa separadores de fecha y hora en un modelo de formato personalizado, use la referencia cultural de todos los idiomas para el parámetro provider y la forma más amplia de cada especificador de formato personalizado.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. Por ejemplo, si desea especificar las horas en el patrón, especifique la forma más ancha, "HH", en lugar de la forma más estrecha, "H".For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

Nota

En lugar de requerir que s se ajusten a un único formato para que la operación de análisis se realice correctamente, puede llamar al método DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) y especificar varios formatos permitidos.Rather than requiring that s conform to a single format for the parse operation to succeed, you can call the DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) method and specify multiple permitted formats. Esto hace que sea más probable que la operación de análisis se realice correctamente.This makes the parse operation more likely to succeed.

Los símbolos y cadenas de fecha y hora concretos (como los nombres de los días de la semana en un idioma determinado) que se usan en s se definen mediante el parámetro provider, como es el formato preciso de s si format es una cadena de especificador de formato estándar.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. El parámetro provider puede ser cualquiera de los siguientes:The provider parameter can be any of the following:

Si provider es null, se utiliza el objeto CultureInfo correspondiente a la referencia cultural actual.If provider is null, the CultureInfo object that corresponds to the current culture is used.

El parámetro styles incluye uno o más miembros de la enumeración DateTimeStyles que determinan si los espacios en blanco no definidos por format pueden aparecer en s, y que controlan el comportamiento preciso de la operación de análisis.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. En la tabla siguiente se describe cómo cada miembro de la enumeración DateTimeStyles afecta al funcionamiento del método TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime).The following table describes how each member of the DateTimeStyles enumeration affects the operation of the TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) method.

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 Especifica que pueden aparecer espacios en blanco no definidos por format entre cualquier elemento de fecha u hora individual.Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite Especifica que el espacio en blanco no definido por format puede aparecer al principio de s.Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite Especifica que el espacio en blanco no definido por format puede aparecer al final de s.Specifies that white space not defined by format can appear at the end of s.
AllowWhiteSpaces Especifica que s puede contener espacios en blanco iniciales, internos y finales no definidos por format.Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
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.
NoCurrentDateDefault Si s contiene una hora sin información de fecha, la fecha del valor devuelto se establece en DateTime.MinValue.Date.If s contains time without date information, the date of the return value is set to DateTime.MinValue.Date.
None El parámetro s se analiza con los valores predeterminados.The s parameter is parsed using default values. No se permite ningún espacio en blanco que no sea el presente en format.No white space other than that present in format is allowed. Si s no tiene un componente de fecha, la fecha del valor de DateTime devuelto se establece en 1/1/0001.If s lacks a date component, the date of the returned DateTime value is set to 1/1/0001. Si s no contiene información de zona horaria, la propiedad Kind del objeto DateTime devuelto se establece en DateTimeKind.Unspecified.If s contains no time zone information, the Kind property of the returned DateTime object is set to DateTimeKind.Unspecified. Si hay información de zona horaria en s, la hora se convierte en hora local y la propiedad Kind del objeto DateTime devuelto se establece en 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 En el caso de las cadenas que contienen información de zona horaria, intenta evitar la conversión en un valor DateTime con su propiedad Kind establecida en DateTimeKind.Local.For strings that contain time zone information, tries to prevent the conversion to a DateTime value with its Kind property set to DateTimeKind.Local. Esta marca evita principalmente la conversión de horas UTC en horas locales.This flag primarily prevents the conversion of UTC times to local times.

Notas a los autores de las llamadas

En el .NET Framework 4.NET Framework 4, el método TryParseExact devuelve @no__t 2 Si la cadena que se va a analizar contiene un componente de hora y un designador AM/PM que no están en el acuerdo.In the .NET Framework 4.NET Framework 4, the TryParseExact method returns false if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. En el .NET Framework 3,5.NET Framework 3.5 y versiones anteriores, se omite el designador AM/PM.In the .NET Framework 3,5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Consulte también:

TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)

Convierte la representación de cadena especificada de una fecha y hora en el objeto DateTime equivalente, usando la matriz de formatos, la información de formato específica de la referencia cultural y el estilo especificados.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. El formato de la representación de cadena debe coincidir exactamente con al menos uno de los formatos especificados.The format of the string representation must match at least one of the specified formats exactly. El método devuelve un valor que indica si la conversión se realizó correctamente.The method returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParseExact(System::String ^ s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (string s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As String, formats As String(), provider As IFormatProvider, style 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 that contains a date and time to convert.

formats
String[]

Matriz de formatos permitidos de s.An array of allowable formats of s.

provider
IFormatProvider

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

style
DateTimeStyles

Combinación bit a bit de valores de enumeración que indica el formato permitido de s.A bitwise combination of enumeration values that indicates the permitted format of s. 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 producirá un error en la conversión cuando s o formats sea null, cuando s o un elemento de formats sea una cadena vacía, o cuando el formato de s no coincida exactamente con al menos uno de los modelos de formato de formats.The conversion fails if s or formats is null, s or an element of formats is an empty string, or the format of s is not exactly as specified by at least one of the format patterns in formats. 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).

Ejemplos

En el ejemplo siguiente se usa el método DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) para asegurarse de que una cadena en varios formatos posibles se puede analizar correctamente.The following example uses the DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) 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"};
      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"}; 
      DateTime dateValue;
      
      foreach (string dateString in dateStrings)
      {
         if (DateTime.TryParseExact(dateString, formats, 
                                    new CultureInfo("en-US"), 
                                    DateTimeStyles.None, 
                                    out dateValue))
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
         else
            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.
Imports System.Globalization

Public 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"}
      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"} 

      Dim dateValue As DateTime
      
      For Each dateString As String In dateStrings
         If Date.TryParseExact(dateString, formats, _
                               New CultureInfo("en-US"), _
                               DateTimeStyles.None, _
                               dateValue) Then
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue)
         Else
            Console.WriteLine("Unable to convert '{0}' to a date.", dateString)
         End If                                               
      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.

Comentarios

El método DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) analiza la representación de cadena de una fecha que coincide con cualquiera de los patrones asignados al parámetro formats.The DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) method parses the string representation of a date that matches any one of the patterns assigned to the formats parameter. Es como el método DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles), excepto que el método TryParseExact no inicia una excepción si se produce un error en la conversión.It is like the DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) method, except the TryParseExact method does not throw an exception if the conversion fails.

El parámetro s contiene la fecha y hora que se van a analizar.The s parameter contains the date and time to parse. Si el parámetro s solo contiene una hora y ninguna fecha, se usa la fecha actual, a menos que el parámetro style incluya la marca DateTimeStyles.NoCurrentDateDefault, en cuyo caso se utiliza la fecha predeterminada (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. Si el parámetro s solo contiene una fecha y sin hora, se usa la medianoche (00:00:00).If the s parameter contains only a date and no time, midnight (00:00:00) is used. El parámetro style también determina si el parámetro s puede contener caracteres de espacio en blanco iniciales, internos o finales distintos de los permitidos por una de las cadenas de formato de formats.The style parameter also determines whether the s parameter can contain leading, inner, or trailing white space characters other than those permitted by one of the format strings in formats.

Si s no contiene información de zona horaria, la propiedad Kind del objeto DateTime devuelto es DateTimeKind.Unspecified.If s contains no time zone information, the Kind property of the returned DateTime object is DateTimeKind.Unspecified. Este comportamiento se puede cambiar mediante el uso de la marca DateTimeStyles.AssumeLocal, que devuelve un valor DateTime cuya propiedad Kind es DateTimeKind.Local o mediante las marcas DateTimeStyles.AssumeUniversal y DateTimeStyles.AdjustToUniversal, que devuelve un valor DateTime cuya propiedad Kind es DateTimeKind.Utc.This behavior can be changed by using the DateTimeStyles.AssumeLocal flag, which returns a DateTime value whose Kind property is DateTimeKind.Local, or by using the DateTimeStyles.AssumeUniversal and DateTimeStyles.AdjustToUniversal flags, which returns a DateTime value whose Kind property is DateTimeKind.Utc. Si contiene información de zona horaria, la hora se convierte a la hora local, si es necesario, y la propiedad Kind del objeto DateTime devuelto se establece en 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. Este comportamiento se puede cambiar mediante el uso de la marca DateTimeStyles.RoundtripKind para no convertir la hora universal coordinada (UTC) a una hora local y establecer la propiedad Kind en 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.

El parámetro formats contiene una matriz de patrones, uno de los cuales s debe coincidir exactamente si la operación de análisis es correcta.The formats parameter contains an array of patterns, one of which s must match exactly if the parse operation is to succeed. Los patrones del parámetro formats se componen de uno o varios especificadores de formato personalizado de la tabla de cadenas de formato de fecha y hora personalizado , o un único especificador de formato estándar, que identifica un patrón predefinido, de la fecha y hora estándar. Tabla de cadenas de formato.The patterns in the formats parameter consist of one or more custom format specifiers from the Custom Date and Time Format Strings table, or a single standard format specifier, which identifies a predefined pattern, from the Standard Date and Time Format Strings table.

Si no usa separadores de fecha y hora en un modelo de formato personalizado, use la referencia cultural de todos los idiomas para el parámetro provider y la forma más amplia de cada especificador de formato personalizado.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. Por ejemplo, si desea especificar las horas en el patrón, especifique la forma más ancha, "HH", en lugar de la forma más estrecha, "H".For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

Los símbolos y cadenas de fecha y hora concretos (como los nombres de los días de la semana en un idioma determinado) que se usan en s se definen mediante el parámetro provider, como es el formato preciso de s si format es una cadena de especificador de formato estándar.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. El parámetro provider puede ser cualquiera de los siguientes:The provider parameter can be any of the following:

Si provider es null, se utiliza el objeto CultureInfo correspondiente a la referencia cultural actual.If provider is null, the CultureInfo object that corresponds to the current culture is used.

El parámetro styles incluye uno o más miembros de la enumeración DateTimeStyles que determinan si los espacios en blanco no definidos por format pueden aparecer en s, y que controlan el comportamiento preciso de la operación de análisis.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. En la tabla siguiente se describe cómo cada miembro de la enumeración DateTimeStyles afecta al funcionamiento del método TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime).The following table describes how each member of the DateTimeStyles enumeration affects the operation of the TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) method.

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 Especifica que pueden aparecer espacios en blanco no definidos por format entre cualquier elemento de fecha u hora individual.Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite Especifica que el espacio en blanco no definido por format puede aparecer al principio de s.Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite Especifica que el espacio en blanco no definido por format puede aparecer al final de s.Specifies that white space not defined by format can appear at the end of s.
AllowWhiteSpaces Especifica que s puede contener espacios en blanco iniciales, internos y finales no definidos por format.Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
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.
NoCurrentDateDefault Si s contiene una hora sin información de fecha, la fecha del valor devuelto se establece en DateTime.MinValue.Date.If s contains time without date information, the date of the return value is set to DateTime.MinValue.Date.
None El parámetro s se analiza con los valores predeterminados.The s parameter is parsed using default values. No se permite ningún espacio en blanco que no sea el presente en format.No white space other than that present in format is allowed. Si s no tiene un componente de fecha, la fecha del valor de DateTime devuelto se establece en 1/1/0001.If s lacks a date component, the date of the returned DateTime value is set to 1/1/0001. Si s no contiene información de zona horaria, la propiedad Kind del objeto DateTime devuelto se establece en DateTimeKind.Unspecified.If s contains no time zone information, the Kind property of the returned DateTime object is set to DateTimeKind.Unspecified. Si hay información de zona horaria en s, la hora se convierte en hora local y la propiedad Kind del objeto DateTime devuelto se establece en 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 En el caso de las cadenas que contienen información de zona horaria, intenta evitar la conversión en un valor DateTime con su propiedad Kind establecida en DateTimeKind.Local.For strings that contain time zone information, tries to prevent the conversion to a DateTime value with its Kind property set to DateTimeKind.Local. Esta marca evita principalmente la conversión de horas UTC en horas locales.This flag primarily prevents the conversion of UTC times to local times.

Notas a los autores de las llamadas

En el .NET Framework 4.NET Framework 4, el método TryParseExact devuelve @no__t 2 Si la cadena que se va a analizar contiene un componente de hora y un designador AM/PM que no están en el acuerdo.In the .NET Framework 4.NET Framework 4, the TryParseExact method returns false if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. En el .NET Framework 3,5.NET Framework 3.5 y versiones anteriores, se omite el designador AM/PM.In the .NET Framework 3,5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Consulte también:

Se aplica a