Esta documentación está archivada y no tiene mantenimiento.

DateTime.TryParseExact (Método) (String, String[], IFormatProvider, DateTimeStyles, DateTime%)

Actualización: Julio de 2008

Convierte la representación de cadena que se haya especificado para una fecha y hora en su DateTime equivalente, utilizando la matriz de formatos, la información de formato específica de la referencia cultural y el estilo especificados. El formato de la representación de cadena debe coincidir exactamente con al menos uno de los formatos especificados. El método devuelve un valor que indica si la conversión finalizó correctamente.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

public static bool TryParseExact(
	string s,
	string[] formats,
	IFormatProvider provider,
	DateTimeStyles style,
	out DateTime result
)
public static boolean TryParseExact(
	String s,
	String[] formats,
	IFormatProvider provider,
	DateTimeStyles style,
	/** @attribute OutAttribute */ /** @ref */DateTime result
)
public static function TryParseExact(
	s : String, 
	formats : String[], 
	provider : IFormatProvider, 
	style : DateTimeStyles, 
	result : DateTime
) : boolean

Parámetros

s
Tipo: System.String
Cadena que contiene una o más fechas y horas que se van a convertir.
formats
Tipo: System.String[]
Matriz de formatos admisibles de s.
provider
Tipo: System.IFormatProvider
Objeto que aporta información de formato específica de la referencia cultural acerca de s.
style
Tipo: System.Globalization.DateTimeStyles
Combinación bit a bit de valores de enumeración que indica el formato permitido de s. Un valor que se especifica de forma habitual es DateTimeStyles.None.
result
Tipo: System.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. 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. Este parámetro se pasa sin inicializar.

Valor devuelto

Tipo: System.Boolean
true si el parámetro s se convierte correctamente; en caso contrario, false.

ExcepciónCondición
ArgumentException

styles no es un valor válido de DateTimeStyles.

O bien

styles contiene una combinación no válida de valores de DateTimeStyles (por ejemplo, AssumeLocal y AssumeUniversal).

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 modelos asignados al parámetro formats. Es como el método DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles), con la diferencia de que el método TryParseExact no produce ninguna excepción si se produce un error de conversión.

El parámetro s contiene la fecha y la hora que se van a analizar. Si el parámetro s contiene solamente una hora pero ninguna fecha, se usa la fecha actual, a menos que el parámetro style incluya el marcador DateTimeStyles.NoCurrentDateDefault, en cuyo caso se usa fecha predeterminada (DateTime.Date.MinValue). Si el parámetro s contiene sólo una fecha pero ninguna hora, se utiliza la medianoche (00:00:00). El parámetro style también determina si el parámetro s puede contener caracteres de espacio en blanco iniciales, interiores o finales distintos de los permitidos por una de las cadenas de formato de formats.

Si el parámetro s no incluye información de zona horaria, la propiedad Kind del objeto DateTime devuelto será DateTimeKind.Unspecified. Este comportamiento puede modificarse utilizando el marcador DateTimeStyles.AssumeLocal, que devuelve un valor DateTime cuya propiedad Kind es DateTimeKind.Local, o utilizando los marcadores DateTimeStyles.AssumeUniversal y DateTimeStyles.AdjustToUniversal, que devuelven un valor DateTime cuya propiedad Kind es DateTimeKind.Utc. Si el parámetro s incluye información de la 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. Este comportamiento puede modificarse usando el marcador DateTimeStyles.RoundtripKind para no convertir la hora universal coordinada (UTC) en una hora local y establecer la propiedad Kind en DateTimeKind.Utc.

El parámetro formats contiene una matriz de modelos, uno de los cuales debe coincidir exactamente con s para que la operación de análisis se realice correctamente. Los modelos del parámetro formats se componen de uno o varios especificadores de formato personalizados que provienen de la tabla Cadenas de formato de fecha y hora personalizadas, o de un solo especificador de formato estándar, que identifica un modelo predefinido, de la tabla Cadenas de formato de fecha y hora estándar.

Si no usa los separadores de fecha u hora de un modelo de formato personalizado, utilice la referencia cultural de todos los idiomas para el parámetro provider y el formato más extenso de cada especificador de formato personalizado. Por ejemplo, si desea establecer horas en el modelo, especifique el formato largo, "HH", en lugar del formato corto, "H".

Los símbolos y cadenas de fecha y hora concretos (como los nombres de los días de la semana de un idioma determinado) que se usan en s se definen con el parámetro provider, al igual que el formato exacto de s si format es una cadena de especificador de formato estándar. El parámetro provider puede ser uno de los siguientes:

Si provider es null, se usa el objeto CultureInfo correspondiente a la referencia cultural actual.

El parámetro styles incluye uno o más miembros de la enumeración DateTimeStyles que determinan si pueden aparecer espacios en blanco no definidos por format en s y dónde pueden aparecer, y controla el comportamiento exacto de la operación de análisis. En la tabla siguiente se describe el modo en que la operación del método TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) afecta a cada uno de los miembros de la enumeración DateTimeStyles.

Miembro DateTimeStyles

Descripción

AdjustToUniversal

Analiza s y, si es necesario, lo convierte en la hora UTC. Si s incluye un desplazamiento de zona horaria o si s no contiene ninguna información de zona horaria, pero styles incluye el marcador DateTimeStyles.AssumeLocal, el método analiza la cadena, llama a ToUniversalTime para convertir el valor DateTime devuelto en hora UTC y establece la propiedad Kind en DateTimeKind.Utc. Si s indica que representa la hora UTC o si s no contiene información de la zona horaria, pero styles incluye el marcador 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 en DateTimeKind.Utc. En todos los demás casos, el marcador no tiene ningún efecto.

AllowInnerWhite

Especifica que pueden aparecer espacios en blanco no definidos por format entre cualquier elemento de fecha y hora individual.

AllowLeadingWhite

Especifica que pueden aparecer espacios en blanco no definidos por format al principio de s.

AllowTrailingWhite

Especifica que pueden aparecer espacios en blanco no definidos por format al final de s.

AllowWhiteSpaces

Especifica que s puede contener espacios en blanco iniciales, internos y finales no definidos por format.

AssumeLocal

Especifica que, si s carece de cualquier información de zona horaria, se supone que representa una hora local. A menos que esté presente el marcador DateTimeStyles.AdjustToUniversal, la propiedad Kind del valor DateTime devuelto está establecida en DateTimeKind.Local.

AssumeUniversal

Especifica que si s carece de cualquier información de zona horaria, se supone que representa la hora UTC. A menos que esté presente el marcador DateTimeStyles.AdjustToUniversal, el método convierte el valor DateTime devuelto de hora UTC en la hora local y establece su propiedad Kind en DateTimeKind.Local.

NoCurrentDateDefault

Si s incluye una hora sin información de fecha, la fecha del valor devuelto se establece en DateTime.MinValue.Date.

None

El parámetro s se analiza utilizando los valores predeterminados. No se permiten más espacios en blanco que los que estén presentes en format. Si s no incluye ningún componente de fecha, la fecha del valor DateTime devuelto se establece en 1/1/0001. Si s no incluye información de zona horaria, la propiedad Kind del objeto DateTime devuelto se establece en DateTimeKind.Unspecified. Si hay información de la zona horaria presente en el parámetro s, la hora se convierte a la hora local y la propiedad Kind del objeto DateTime devuelto se establece en DateTimeKind.Local.

RoundtripKind

En el caso de las cadenas que contienen información de la zona horaria, intenta impedir la conversión en un valor DateTime con su propiedad Kind establecida en DateTimeKind.Local. Este marcador impide principalmente la conversión de horas UTC en horas locales.

El ejemplo siguiente usa el método DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) para asegurarse de que una cadena en una serie de formatos posibles pueda analizarse correctamente.

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.


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0

Fecha

Historial

Motivo

Julio de 2008

Se han agregado comentarios y un ejemplo.

Mejora de la información.

Mostrar: