Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.
El DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) método analiza una cadena que puede contener información de fecha, hora y zona horaria. Es similar al DateTime.Parse(String, IFormatProvider, DateTimeStyles) método , salvo que el DateTime.TryParse(String, DateTime) método no produce una excepción si se produce un error en la conversión.
Este método intenta omitir los datos no reconocidos y analizar completamente la cadena de entrada (s
). Si s
contiene una hora pero ninguna fecha, el método sustituye de forma predeterminada la fecha actual o, si styles
incluye la NoCurrentDateDefault marca, sustituye DateTime.Date.MinValue
. Si s
contiene una fecha pero ninguna hora, se usa la medianoche de 12:00 como hora predeterminada. Si hay una fecha, pero su componente de año consta de solo dos dígitos, se convierte a un año en el calendario actual del parámetro provider
según el valor de la propiedad Calendar.TwoDigitYearMax. Se omiten los caracteres de espacio en blanco iniciales, internos o finales de s
. La fecha y hora pueden estar rodeadas por un par de caracteres de signo de número ('#', U+0023) y pueden estar seguidas por uno o más caracteres nulos (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 provider
parámetro , que puede ser cualquiera de los siguientes:
- Objeto CultureInfo que representa la referencia cultural cuyo formato se usa en el
s
parámetro . El DateTimeFormatInfo objeto devuelto por la CultureInfo.DateTimeFormat propiedad define el formato usado ens
. - Objeto DateTimeFormatInfo que define el formato usado en
s
. - Implementación de IFormatProvider personalizada. Su IFormatProvider.GetFormat método devuelve un DateTimeFormatInfo objeto que define el formato usado en
s
.
Si provider
es null
, se usa la referencia cultural actual.
Si s
es la representación de cadena de un día bisiesto en un año bisiesto en el calendario actual, el método interpreta s
correctamente. Si s
es la representación 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
.
El styles
parámetro define la interpretación precisa de la cadena analizada y cómo la operación de análisis debe controlarla. Puede ser uno o varios miembros de la DateTimeStyles enumeración, como se describe en la tabla siguiente.
Miembro DateTimeStyles | Descripción |
---|---|
AdjustToUniversal | Analiza s y, si es necesario, lo convierte en UTC. Si s incluye un desplazamiento de zona horaria, o si s no contiene 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 devuelto DateTime a UTC y establece la propiedad Kind en DateTimeKind.Utc. Si s indica que representa UTC o si s no contiene información de zona horaria, pero styles incluye la marca DateTimeStyles.AssumeUniversal, el método analiza esta cadena, no realiza ninguna conversión de zona horaria en el valor devuelto DateTime y establece la propiedad Kind en DateTimeKind.Utc. En todos los demás casos, la marca no tiene ningún efecto. |
AllowInnerWhite | Aunque es válido, este valor se omite. El espacio en blanco interno se permite en los elementos de fecha y hora de s . |
AllowLeadingWhite | Aunque es válido, este valor se omite. El espacio en blanco inicial se permite en los elementos de fecha y hora de s . |
AllowTrailingWhite | Aunque es válido, este valor se omite. El espacio en blanco final se permite en los elementos de fecha y hora de s . |
AllowWhiteSpaces | Especifica que s puede contener espacios en blanco iniciales, internos y finales. Este es el comportamiento predeterminado. No se puede invalidar proporcionando un valor de enumeración más restrictivo DateTimeStyles , como DateTimeStyles.None. |
AssumeLocal | Especifica que si s carece de información de zona horaria, se supone que representa una hora local. A menos que la DateTimeStyles.AdjustToUniversal marca esté presente, la propiedad Kind del valor devuelto DateTime se establece en DateTimeKind.Local. |
AssumeUniversal | Especifica que si s carece de información de zona horaria, se supone que representa utc. A menos que la DateTimeStyles.AdjustToUniversal marca esté presente, el método convierte el valor devuelto DateTime de UTC a hora local y establece su Kind propiedad en DateTimeKind.Local. |
None | Aunque es válido, este valor se omite. |
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 DateTime valor con su Kind propiedad establecida en DateTimeKind.Local. Normalmente, esta cadena se crea llamando al DateTime.ToString(String) método mediante los especificadores de formato estándar "o", "r" o "u". |
Si s
no contiene información de zona horaria, el DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) método devuelve un DateTime valor cuya Kind propiedad es DateTimeKind.Unspecified a menos que una styles
marca indique lo contrario. Si s
incluye información de zona horaria o desplazamiento de zona horaria, el método DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) realiza la conversión de tiempo necesaria y devuelve una de las siguientes opciones:
- Valor DateTime cuya fecha y hora reflejan la hora local y cuya Kind propiedad es DateTimeKind.Local.
- O bien, si
styles
incluye la AdjustToUniversal marca , un DateTime valor cuya fecha y hora reflejan UTC y cuya Kind propiedad es DateTimeKind.Utc.
Este comportamiento se puede invalidar mediante la DateTimeStyles.RoundtripKind marca .
Análisis de referencias culturales personalizadas
Si analiza una cadena de fecha y hora generada para una referencia cultural personalizada, use el TryParseExact método en lugar del TryParse método para mejorar la probabilidad de que la operación de análisis se realice correctamente. Una cadena de fecha y hora de referencia cultural personalizada puede ser complicada y difícil de analizar. El TryParse método intenta analizar una cadena con varios patrones de análisis implícitos, lo que podría producir un error. En cambio, el método TryParseExact requiere que designe explícitamente uno o varios patrones de análisis exactos que probablemente tengan éxito.
Para obtener más información sobre las referencias culturales personalizadas, consulte la clase System.Globalization.CultureAndRegionInfoBuilder.