Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Este tema aún no ha recibido ninguna valoración Valorar este tema

DateTime.ParseExact (Método) (String, String, IFormatProvider)

Convierte la representación de cadena que se haya especificado para una fecha y hora en su DateTime equivalente, utilizando la información de formato específica de la referencia cultural y el formato especificados. El formato de la representación de cadena debe coincidir exactamente con el formato especificado.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)
public static DateTime ParseExact(
	string s,
	string format,
	IFormatProvider provider
)

Parámetros

s
Tipo: System.String
Cadena que contiene una fecha y hora que se van a convertir.
format
Tipo: System.String
Especificador de formato que define el formato requerido de s.
provider
Tipo: System.IFormatProvider
Objeto que aporta información de formato específica de la referencia cultural acerca de s.

Valor devuelto

Tipo: System.DateTime
Objeto equivalente a la fecha y hora contenidas en s, tal como especifican format y provider.
Excepción Condición
ArgumentNullException

El valor de s o format es Nothing.

FormatException

s o format es una cadena vacía.

O bien

s no contiene una fecha y hora que se correspondan con el modelo especificado en format.

O bien

El componente de hora y el designador AM/PM en s no coinciden.

El método DateTime.ParseExact(String, String, IFormatProvider) analiza la representación de cadena de una fecha, que debe estar en el formato definido por el parámetro format. También requiere que los elementos <Fecha> y <Hora> de la representación de cadena de una fecha y hora aparezcan en el orden especificado por format y que s no tenga ningún espacio en blanco distinto del permitido por format. Si format define una fecha sin el elemento horario y la operación de análisis se realiza correctamente, la hora del valor DateTime resultante es la medianoche (00:00:00). Si format define una hora sin el elemento de fecha y la operación de análisis se realiza correctamente, la fecha del valor DateTime resultante es DateTime.Now.Date.

Si s no representa una hora en una zona horaria determinada y la operación de análisis tiene éxito, la propiedad Kind del valor DateTime devuelto es DateTimeKind.Unspecified. Si s representa la hora en una zona horaria determinada y format permite que la información de zona horaria esté presente (por ejemplo, si format es igual a los especificadores de formato estándar o, r o u, o si contiene los especificadores de formato personalizados z, zz o zzz), la propiedad Kind del valor DateTime devuelto es DateTimeKind.Local.

El parámetro format es una cadena que contiene un especificador de formato estándar único o uno o más especificadores de formato personalizados que definen el formato necesario del parámetro s. Para obtener información detallada sobre los códigos de formato válidos, vea Cadenas con formato de fecha y hora estándar o Cadenas de formato de fecha y hora personalizadas.

Nota Nota

Si format es un modelo de formato personalizado que no incluye separadores de fecha y hora (como "aaaaMMdd HHmm"), utilice la referencia cultural de todos los idiomas para el parámetro provider y el formato largo de cada especificador de formato personalizado. Por ejemplo, si desea establecer horas en el modelo de formato, 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 en un idioma determinado) utilizados en s se definen con el parámetro provider, al igual que el formato preciso 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 Nothing, se usa el objeto CultureInfo que corresponde a la referencia cultural actual.

Notas para los llamadores

En .NET Framework 4, el método ParseExact produce FormatException si la cadena que se va a analizar contiene un componente de hora y un designador AM/PM que no concuerdan. En .NET Framework 3.5 y en versiones anteriores, el designador AM/PM se pasa por alto.

En el siguiente ejemplo se muestra el método ParseExact.


string dateString, format;  
DateTime result;
CultureInfo provider = CultureInfo.InvariantCulture;

// Parse date-only value with invariant culture.
dateString = "06/15/2008";
format = "d";
try {
   result = DateTime.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException) {
   Console.WriteLine("{0} is not in the correct format.", dateString);
} 

// Parse date-only value without leading zero in month using "d" format.
// Should throw a FormatException because standard short date pattern of 
// invariant culture requires two-digit month.
dateString = "6/15/2008";
try {
   result = DateTime.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException) {
   Console.WriteLine("{0} is not in the correct format.", dateString);
}

// Parse date and time with custom specifier.
dateString = "Sun 15 Jun 2008 8:30 AM -06:00";
format = "ddd dd MMM yyyy h:mm tt zzz";
try {
   result = DateTime.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException) {
   Console.WriteLine("{0} is not in the correct format.", dateString);
}

// Parse date and time with offset but without offset's minutes.
// Should throw a FormatException because "zzz" specifier requires leading  
// zero in hours.
dateString = "Sun 15 Jun 2008 8:30 AM -06";
try {
   result = DateTime.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}   
catch (FormatException) {
   Console.WriteLine("{0} is not in the correct format.", dateString);
} 

dateString = "15/06/2008 08:30";
format = "g";
provider = new CultureInfo("fr-FR");
try {
   result = DateTime.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}   
catch (FormatException) {
   Console.WriteLine("{0} is not in the correct format.", dateString);
} 
// The example displays the following output:
//       06/15/2008 converts to 6/15/2008 12:00:00 AM.
//       6/15/2008 is not in the correct format.
//       Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 7:30:00 AM.
//       Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.
//       15/06/2008 08:30 converts to 6/15/2008 8:30:00 AM.


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Compatible con:

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar