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
|
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.
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.DateTimeObjeto 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
|
|---|
|
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:
-
Un objeto CultureInfo que representa la referencia cultural utilizada para interpretar s. El objeto DateTimeFormatInfo devuelto por su propiedad DateTimeFormat define los símbolos y el formato en s.
-
Objeto DateTimeFormatInfo que define el formato de los datos de fecha y hora.
-
Una implementación IFormatProvider personalizada cuyo método GetFormat devuelve el objeto CultureInfo o el objeto DateTimeFormatInfo que proporciona información de formato.
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.
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.
