Formateo de fechas

30/05/2005 - 11:37 por yego | Informe spam
Hola a todos.
Acabo de darme cuenta de que el String.format no me formatea las fechas como
le digo, de echo pasa absolutamente de mi.
¿esta todo bien o no?

1. ) this.tbCuadroFecha.Text=string.Format(this.strFecha,this.mascara);

2.) this.tbCuadroFecha.Text= String.Format(this.strFecha,"dd/mm/yyyy");

Preguntas similare

Leer las respuestas

#1 Tristan
30/05/2005 - 13:02 | Informe spam
El método String.Format no funciona así. El primer argumento es el formato,
no el segundo. A partir del segundo son los datos que se van a formatear, y
se tienen que corresponder con el primer argumento.

El formato tampoco se escribe así. Se deben numerar los parámetros a
formatear, encerrados entre llaves.

Por si fuera poco, los formatos de fecha, como su nombre indican, solo
funcionan sobre datos tipo fecha. No sobre strings con aspecto de fechas.

Esto si sería un ejemplo correcto de formateo de fechas:

string s = "10/02/2004";
MessageBox.Show(string.Format("{0:dd-MM-yy}", DateTime.Parse(s)));

Observa que DateTime.Parse se utiliza para obtener el valor fecha
equivalente al string.

Realmente yo no utilizaría String.Parse en tu caso, sino el método ToString():

string s = "10/02/2004";
MessageBox.Show(DateTime.Parse(s).ToString("dd-MM-yy"));

Juan Carlos Badiola Saiz
MVP - C#
Respuesta Responder a este mensaje
#2 yego
30/05/2005 - 13:27 | Informe spam
Muchasimas gracias por contestar. Pero ahora se me plantea otra duda, ¿las
cadenas siempre han de tener las barras? mi problema se fundamente sobre
todo en que las fechas son cadenas de longitud 8; "01012005" siempre me da
un error al intentar convertilas a DateTime. Estoy atorado!.

"Tristan" escribió en el mensaje
news:
El método String.Format no funciona así. El primer argumento es el


formato,
no el segundo. A partir del segundo son los datos que se van a formatear,


y
se tienen que corresponder con el primer argumento.

El formato tampoco se escribe así. Se deben numerar los parámetros a
formatear, encerrados entre llaves.

Por si fuera poco, los formatos de fecha, como su nombre indican, solo
funcionan sobre datos tipo fecha. No sobre strings con aspecto de fechas.

Esto si sería un ejemplo correcto de formateo de fechas:

string s = "10/02/2004";
MessageBox.Show(string.Format("{0:dd-MM-yy}", DateTime.Parse(s)));

Observa que DateTime.Parse se utiliza para obtener el valor fecha
equivalente al string.

Realmente yo no utilizaría String.Parse en tu caso, sino el método


ToString():

string s = "10/02/2004";
MessageBox.Show(DateTime.Parse(s).ToString("dd-MM-yy"));

Juan Carlos Badiola Saiz
MVP - C#
Respuesta Responder a este mensaje
#3 Rodrigo Corral [MVP]
30/05/2005 - 14:42 | Informe spam
System.DateTime dt =
System.DateTime.ParseExact("01012005","ddMMyyyy",System.Globalization.CultureInfo.CurrentCulture);


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#4 yego
30/05/2005 - 15:15 | Informe spam
Muchas gracias Rodrigo.

"Rodrigo Corral [MVP]" escribió en el mensaje
news:%
System.DateTime dt >


System.DateTime.ParseExact("01012005","ddMMyyyy",System.Globalization.Cultur
eInfo.CurrentCulture);


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org



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