La fecha siempre sale mal!!!

10/12/2004 - 19:27 por Omar del Valle | Informe spam
Hola grupo..

No se supone que para el código:

DateTime miFecha = DateTime.Parse("12/10/2004",
CultureInfo.CreateSpecificCulture("en-US");

Las propiedades Day, Month, Year de la variable miFecha deban ser 10 para
Day, 12 para Month y 2004 para Year?????

Resulta que he puesto intencionalmente la fecha de mi PC en formato d/M/yyyy
y no hay forma que el código anterior no me retorne el mes y el día
intercambiado.

Yo me imaginaba que si yo especifico que la fecha será convertida usando una
cultura específica, se me hacia totalmente independiente del formato o
cultura usada por la PC

Alguna ayuda o sugerencia???

Gracias y Salu2
Omar del Valle R.
Ciudad de la Habana - Cuba
Desarrollador Microsoft 3 Estrellas .NET
"Encontrarás un tesoro más grande dentro de un libro,
que el que hallarás en el botín de los piratas de la Isla del Tesoro...
y lo mejor de todo es que puedes disfrutar de esta riqueza cada día de tu
vida."
-Walt Disney

Preguntas similare

Leer las respuestas

#1 Francisco Gomez
10/12/2004 - 15:53 | Informe spam
Prueba a utilizar el método ParseExact, en vez de Parse, pues este últimp te
permite especificar el formato texto de la fecha origen, y dejas el
iFormatPrivider a null:

DateTime miFecha=DateTime.ParseExact("12/10/2004","MM/dd/yyyy",null)

Mira la clase DateTimeFormatInfo para que veas como crear una cadena de
formato personalizada para la fecha.


"Omar del Valle" wrote:

Hola grupo..

No se supone que para el código:

DateTime miFecha = DateTime.Parse("12/10/2004",
CultureInfo.CreateSpecificCulture("en-US");

Las propiedades Day, Month, Year de la variable miFecha deban ser 10 para
Day, 12 para Month y 2004 para Year?????

Resulta que he puesto intencionalmente la fecha de mi PC en formato d/M/yyyy
y no hay forma que el código anterior no me retorne el mes y el día
intercambiado.

Yo me imaginaba que si yo especifico que la fecha será convertida usando una
cultura específica, se me hacia totalmente independiente del formato o
cultura usada por la PC

Alguna ayuda o sugerencia???

Gracias y Salu2
Omar del Valle R.
Ciudad de la Habana - Cuba
Desarrollador Microsoft 3 Estrellas .NET
"Encontrarás un tesoro más grande dentro de un libro,
que el que hallarás en el botín de los piratas de la Isla del Tesoro...
y lo mejor de todo es que puedes disfrutar de esta riqueza cada día de tu
vida."
-Walt Disney



Respuesta Responder a este mensaje
#2 Jose Luis Manners
10/12/2004 - 16:21 | Informe spam
Hola Omar,

Aparte del paréntesis que le falta a tu código, yo no le veo nada malo. A
mí me funciona perfectamente. Cambié la la cultura en Control Panel a una
con un formato de fecha "dd/mm/yyyy" y cuando ejecuto tu codigo la variable
miFecha siempre tiene el formato de Estados Unidos ("mm/dd/yyyy"). Por
cierto, si lo que quieres es utilizar el formato configurado por defecto en
la PC te recomiendo utilizar Thread.CurrentThread.CurrentCulture.

Saludos,

Jose Luis Manners, MCP
English: http://blogs.geekdojo.net/jmanners
Español: http://weblogs.golemproject.com/jmanners/

"Encuentra felicidad en tu trabajo o nunca serás feliz."
Cristóbal Colón

"Omar del Valle" wrote in message
news:
Hola grupo..

No se supone que para el código:

DateTime miFecha = DateTime.Parse("12/10/2004",
CultureInfo.CreateSpecificCulture("en-US");

Las propiedades Day, Month, Year de la variable miFecha deban ser 10 para
Day, 12 para Month y 2004 para Year?????

Resulta que he puesto intencionalmente la fecha de mi PC en formato


d/M/yyyy
y no hay forma que el código anterior no me retorne el mes y el día
intercambiado.

Yo me imaginaba que si yo especifico que la fecha será convertida usando


una
cultura específica, se me hacia totalmente independiente del formato o
cultura usada por la PC

Alguna ayuda o sugerencia???

Gracias y Salu2
Omar del Valle R.
Ciudad de la Habana - Cuba
Desarrollador Microsoft 3 Estrellas .NET
"Encontrarás un tesoro más grande dentro de un libro,
que el que hallarás en el botín de los piratas de la Isla del Tesoro...
y lo mejor de todo es que puedes disfrutar de esta riqueza cada día de tu
vida."
-Walt Disney


Respuesta Responder a este mensaje
#3 Jose Luis Manners
10/12/2004 - 18:13 | Informe spam
Hola Omar,

Mi XP también está en inglés pero no pude recrear el problema con tus
indicaciones. Pero (siempre hay un "pero" no?), si cambio la fecha a
"dd-MMM-yy" entonces sí ocurre lo que indicas en tu mensaje.

Si embargo, si le indicas el valor "10/12/2004" el cual va de acuerdo con el
formato que configuré en Control Panel, el resultado es correcto. Lo que
sucede es que cuando cambias el formato en Control Panel, le estas cambiando
el formato a la cultura configurada por defecto (la cual en tu caso y el mío
es "en-US") y tienes que pasarle la fecha en el formato que espera esa
cultura.

Para darte otro ejemplo de lo mismo, yo cambié la cultura en Control Panel a
"Spanish (Dominican Republic)" la cual por defecto tiene un formato de fecha
"dd/MM/yyy". Ahora mira lo que sucede si le cambio el formato en Control
Panel a "MM/dd/yyyy":

DateTime miFecha1 = DateTime.Parse("12/10/2004",
CultureInfo.CreateSpecificCulture("es-DO"));
DateTime miFecha2 = DateTime.Parse("10/12/2004",
CultureInfo.CreateSpecificCulture("es-DO"));

La primera te da Dia = 10 mientras que la seguna da Dia = 12.

Saludos,

Jose Luis Manners, MCP
English: http://blogs.geekdojo.net/jmanners
Español: http://weblogs.golemproject.com/jmanners/

"Encuentra felicidad en tu trabajo o nunca serás feliz."
Cristóbal Colón

"Omar del Valle" wrote in message
news:
Hola Jose..

Aunque resolviera con el ParseExact creo que la forma mas natural de


hacerlo
es como está el código.. me faltó un parentesis, perdonadme.. ;-)

Mira.. para explicarte la situación.. yo tengo XP en Ingles.. fui
simplemente a panel de control y dije que mi formato de fecha sería


M/d/yyyy
cuando intento hacer..

DateTime miFecha = DateTime.Parse("12/10/2004 10:50:35 AM",
CultureInfo.CreateSpecificCulture("en-US"));

y luego pregunto por las propiedades Day (= 12) Month () y Year


( 04)..
realmente no entiendo por que lo hace asi si le estoy indicando que el
format es "en-US"

Salu2 y gracias
Omar del Valle R.
Ciudad de la Habana - Cuba
Desarrollador Microsoft 3 Estrellas .NET
"Encontrarás un tesoro más grande dentro de un libro,
que el que hallarás en el botín de los piratas de la Isla del Tesoro...
y lo mejor de todo es que puedes disfrutar de esta riqueza cada día de tu
vida."
-Walt Disney

"Jose Luis Manners" <josemanners(-arroba-)hotmail.com> wrote in message
news:
> Hola Omar,
>
> Aparte del paréntesis que le falta a tu código, yo no le veo nada malo.


A
> mí me funciona perfectamente. Cambié la la cultura en Control Panel a


una
> con un formato de fecha "dd/mm/yyyy" y cuando ejecuto tu codigo la
variable
> miFecha siempre tiene el formato de Estados Unidos ("mm/dd/yyyy"). Por
> cierto, si lo que quieres es utilizar el formato configurado por defecto
en
> la PC te recomiendo utilizar Thread.CurrentThread.CurrentCulture.
>
> Saludos,
>
> Jose Luis Manners, MCP
> English: http://blogs.geekdojo.net/jmanners
> Español: http://weblogs.golemproject.com/jmanners/
>
> "Encuentra felicidad en tu trabajo o nunca serás feliz."
> Cristóbal Colón
>
> "Omar del Valle" wrote in message
> news:
> > Hola grupo..
> >
> > No se supone que para el código:
> >
> > DateTime miFecha = DateTime.Parse("12/10/2004",
> > CultureInfo.CreateSpecificCulture("en-US");
> >
> > Las propiedades Day, Month, Year de la variable miFecha deban ser 10
para
> > Day, 12 para Month y 2004 para Year?????
> >
> > Resulta que he puesto intencionalmente la fecha de mi PC en formato
> d/M/yyyy
> > y no hay forma que el código anterior no me retorne el mes y el día
> > intercambiado.
> >
> > Yo me imaginaba que si yo especifico que la fecha será convertida


usando
> una
> > cultura específica, se me hacia totalmente independiente del formato o
> > cultura usada por la PC
> >
> > Alguna ayuda o sugerencia???
> >
> > Gracias y Salu2
> > Omar del Valle R.
> > Ciudad de la Habana - Cuba
> > Desarrollador Microsoft 3 Estrellas .NET
> > "Encontrarás un tesoro más grande dentro de un libro,
> > que el que hallarás en el botín de los piratas de la Isla del


Tesoro...
> > y lo mejor de todo es que puedes disfrutar de esta riqueza cada día de
tu
> > vida."
> > -Walt Disney
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Omar del Valle
10/12/2004 - 20:50 | Informe spam
Gracias Francisco

De esa manera resolví sin problema..

Salu2
Omar del Valle R.
Ciudad de la Habana - Cuba
Desarrollador Microsoft 3 Estrellas .NET
"Encontrarás un tesoro más grande dentro de un libro,
que el que hallarás en el botín de los piratas de la Isla del Tesoro...
y lo mejor de todo es que puedes disfrutar de esta riqueza cada día de tu
vida."
-Walt Disney

"Francisco Gomez" wrote in
message news:
Prueba a utilizar el método ParseExact, en vez de Parse, pues este últimp


te
permite especificar el formato texto de la fecha origen, y dejas el
iFormatPrivider a null:

DateTime miFecha=DateTime.ParseExact("12/10/2004","MM/dd/yyyy",null)

Mira la clase DateTimeFormatInfo para que veas como crear una cadena de
formato personalizada para la fecha.


"Omar del Valle" wrote:

> Hola grupo..
>
> No se supone que para el código:
>
> DateTime miFecha = DateTime.Parse("12/10/2004",
> CultureInfo.CreateSpecificCulture("en-US");
>
> Las propiedades Day, Month, Year de la variable miFecha deban ser 10


para
> Day, 12 para Month y 2004 para Year?????
>
> Resulta que he puesto intencionalmente la fecha de mi PC en formato


d/M/yyyy
> y no hay forma que el código anterior no me retorne el mes y el día
> intercambiado.
>
> Yo me imaginaba que si yo especifico que la fecha será convertida usando


una
> cultura específica, se me hacia totalmente independiente del formato o
> cultura usada por la PC
>
> Alguna ayuda o sugerencia???
>
> Gracias y Salu2
> Omar del Valle R.
> Ciudad de la Habana - Cuba
> Desarrollador Microsoft 3 Estrellas .NET
> "Encontrarás un tesoro más grande dentro de un libro,
> que el que hallarás en el botín de los piratas de la Isla del Tesoro...
> y lo mejor de todo es que puedes disfrutar de esta riqueza cada día de


tu
> vida."
> -Walt Disney
>
>
>
Respuesta Responder a este mensaje
#5 Omar del Valle
10/12/2004 - 20:57 | Informe spam
Hola Jose..

Aunque resolviera con el ParseExact creo que la forma mas natural de hacerlo
es como está el código.. me faltó un parentesis, perdonadme.. ;-)

Mira.. para explicarte la situación.. yo tengo XP en Ingles.. fui
simplemente a panel de control y dije que mi formato de fecha sería M/d/yyyy
cuando intento hacer..

DateTime miFecha = DateTime.Parse("12/10/2004 10:50:35 AM",
CultureInfo.CreateSpecificCulture("en-US"));

y luego pregunto por las propiedades Day (= 12) Month () y Year ( 04)..
realmente no entiendo por que lo hace asi si le estoy indicando que el
format es "en-US"

Salu2 y gracias
Omar del Valle R.
Ciudad de la Habana - Cuba
Desarrollador Microsoft 3 Estrellas .NET
"Encontrarás un tesoro más grande dentro de un libro,
que el que hallarás en el botín de los piratas de la Isla del Tesoro...
y lo mejor de todo es que puedes disfrutar de esta riqueza cada día de tu
vida."
-Walt Disney

"Jose Luis Manners" <josemanners(-arroba-)hotmail.com> wrote in message
news:
Hola Omar,

Aparte del paréntesis que le falta a tu código, yo no le veo nada malo. A
mí me funciona perfectamente. Cambié la la cultura en Control Panel a una
con un formato de fecha "dd/mm/yyyy" y cuando ejecuto tu codigo la


variable
miFecha siempre tiene el formato de Estados Unidos ("mm/dd/yyyy"). Por
cierto, si lo que quieres es utilizar el formato configurado por defecto


en
la PC te recomiendo utilizar Thread.CurrentThread.CurrentCulture.

Saludos,

Jose Luis Manners, MCP
English: http://blogs.geekdojo.net/jmanners
Español: http://weblogs.golemproject.com/jmanners/

"Encuentra felicidad en tu trabajo o nunca serás feliz."
Cristóbal Colón

"Omar del Valle" wrote in message
news:
> Hola grupo..
>
> No se supone que para el código:
>
> DateTime miFecha = DateTime.Parse("12/10/2004",
> CultureInfo.CreateSpecificCulture("en-US");
>
> Las propiedades Day, Month, Year de la variable miFecha deban ser 10


para
> Day, 12 para Month y 2004 para Year?????
>
> Resulta que he puesto intencionalmente la fecha de mi PC en formato
d/M/yyyy
> y no hay forma que el código anterior no me retorne el mes y el día
> intercambiado.
>
> Yo me imaginaba que si yo especifico que la fecha será convertida usando
una
> cultura específica, se me hacia totalmente independiente del formato o
> cultura usada por la PC
>
> Alguna ayuda o sugerencia???
>
> Gracias y Salu2
> Omar del Valle R.
> Ciudad de la Habana - Cuba
> Desarrollador Microsoft 3 Estrellas .NET
> "Encontrarás un tesoro más grande dentro de un libro,
> que el que hallarás en el botín de los piratas de la Isla del Tesoro...
> y lo mejor de todo es que puedes disfrutar de esta riqueza cada día de


tu
> vida."
> -Walt Disney
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida