2009-01-20 19 views
20

que tiene esta función ...cero a la izquierda Formato de fecha C#

private string dateConvert(string datDate) 
{ 
     System.Globalization.CultureInfo cultEnGb = new System.Globalization.CultureInfo("en-GB"); 
     System.Globalization.CultureInfo cultEnUs = new System.Globalization.CultureInfo("en-US"); 

     DateTime dtGb = Convert.ToDateTime(datDate, cultEnGb.DateTimeFormat); 
     datDate = dtGb.ToString(cultEnUs.DateTimeFormat.ShortDatePattern); 

     return datDate; 
} 

Pero lo quiero con el cero inicial sigue en cifras más bajas (1-9) por lo que la fecha es 11-09-2009 (mm -dd-aaaa) ...

Ahora, si no lo estaba convirtiendo id use string.Format ("{0: d}", dateVar) ¿cómo hago esto en la conversión?

***** ***** Solución

Se utiliza una versión ligeramente modificada de la respuesta de abajo (es decir, uno que haría).

Convert.ToDateTime(datDate).ToString("MM-dd-yyyy"); 
+1

Para hacer la pregunta tonta, ¿hay una razón por la que usted no está analizar esto y luego mantenerlo como un valor de fecha hasta que tenga que presentar de nuevo al usuario? –

+1

Es para producir un enlace profundo, que cumpla con los requisitos de la aplicación de terceros que utilizamos. Esto es parte de una secuencia de comandos más grande para que sea más fácil para los socios vincularse. Compañía inglesa, Desarrolladores indios, Formato de fecha de EE. UU. Imagínate. –

Respuesta

42
return dateTimeValue.ToString("MM-dd-yyyy"); 
+2

De acuerdo - de http://msdn.microsoft.com/en-us/library/system.datetime.toshortdatestring(VS.85).aspx el ShortDatePattern de EN-US es "M/d/aaaa", que recortará ceros a la izquierda y use "/" como el separador no como "-". –

+0

@ Zaph: la fecha se repasa y se pasa en la URL, por lo que es necesario separarla. –

+1

Esto no funcionó para mis propósitos (en conjunto) pero modificándolo a ... Convert.ToDateTime (datDate) .ToString ("MM-dd-aaaa"); funcionó una delicia. Gracias –

2

no se puede utilizar el string.Format después de haber realizado la conversión?

es decir return string.Format("{0:d}", datDate);

+0

Eso es lo que esperaba, pero entrando el 20-03-2009 produjo el 3-20-2009 –

+0

Sí, no sé qué estaba pensando, la respuesta de Mehrdad es la que debería funcionar –