Pregunta

En un SO de 32 bits, con un procesador Intel, Fecha y hora, p. 17/02/2009 12:00:00 a.m. Tenga en cuenta que es: mm / DD // aaaa

En un sistema operativo de 64 bits, con un procesador AMD, Fecha y hora, p. 17-02-2009 00:00:00

Ahora, cuando intento analizar el primer formato, arroja un error en la segunda plataforma. Eso significa - DateTime.Parse (& Quot; 17/02/2009 12:00:00 AM & Quot;) - arroja un error - no se puede convertir. mientras que, en la misma plataforma, DateTime.Parse (& Quot; 17/2/2009 12:00:00 AM & Quot;) funciona! Eso significa que DD / MM está bien, MM / DD no lo está.

¿Qué está causando esto? ¿El sistema operativo de 64 bits? El procesador?

¿Cómo me deshago del problema?

¿Fue útil?

Solución

DateTimes en sí mismos no tienen formatos. Los analiza o los formatea en cadenas. (Es como números: los enteros no se almacenan en hexadecimal o decimal, solo son enteros. Puede formatearlos en hexadecimal o decimal, pero el valor en sí mismo es solo un número).

El formato dependerá de la cultura del sistema operativo (o más exactamente, la cultura del hilo, que generalmente es la misma que la del sistema operativo).

Personalmente, me gusta establecer explícitamente el formato que utilizo para analizar o formatear, a menos que realmente muestre la cadena al usuario y sepa que la cultura ya es apropiada.

Otros consejos

Verifique su " Formatos de fecha y hora " en " Región e idioma " panel de control.

Además, si desea que DateTime genere un formato específico, no solo llame a ToString (), sino que le pase un parámetro que indique el formato que desea. Del mismo modo, si conoce el formato de la fecha en la que desea que se analice, llame a TryParseExact () y dígale el formato que está proporcionando.

Consulte también Cadenas de formato estándar de fecha y hora

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top