2011-04-12 19 views
9

Tengo el siguiente códigofecha de emisión separador

DateTime.Now.ToString("MM/dd/yyyy") 

Siempre me da este resultado: "04.13.2011" en lugar de "04/13/2011". ¿Puedo saber por qué estoy recibiendo este extraño problema?

Respuesta

19

Usted es casi seguro que en una cultura en la que es la separación de la fecha por defecto. Si desea fuerza/ se puede citar en la cadena de formato:

string x = DateTime.Now.ToString("MM'/'dd'/'yyyy") 
+0

¡Guau! ¡Hizo el truco Awesome! Jon pero en mi caso estoy almacenando los formatos como "MM/dd/aaaa" y para otros puede ser "dd/MM/aaaa", para otros puede ser "dd-MM-aaaa". Voy a buscar ese formato de usuario desde DB y usaré este código DateTime.Now.ToString (UserFormatStoredInDB). ¿Cómo puedo manejar esta situación? –

+0

@Rocky: simplemente cite cualquier separador que quiera usar ... ponga la cadena entre comillas en la base de datos. La versión citada funcionará en cualquier cultura. O bien, * usted * podría * especificar siempre la cultura invariante para usar en el formateo, como alternativa. –

+0

¿podría decirme el código para esto "O siempre puede especificar la cultura invariable para el formato"? –

2

probar este

DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture) 
1

Uso siguiente código:

DateTime.Now.ToString("MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture) 

Esto asegura que la fecha subyacente y los valores de tiempo no cambian cuando los datos son leídos o escritos por usuarios de diferentes culturas.