2009-04-24 32 views
8

que experimenta un comportamiento extraño de C#. Su algo como esto ..Formato DateTime en C#

var date = DateTime.Now.ToString("MM/dd/yyyy"); 

me esperaba ser

04/24/2009 

pero en su Actuall regresando

04-24-2009 

y mi cultura OS es en-GB, estoy utilizando .Net 3.5 y WPF

ninguna solución por favor ... ???

+0

¿Ha intensificado a través del código y completó un "Inspección rápida" en la que DateTime.Now.ToString()? – Tacoman667

+0

Si está utilizando "en-GB", debe utilizar un formato de fecha de "dd/MM/aaaa". Para los formatos de fecha estadounidenses de "MM/dd/aaaa", debe usar "en-US". – JeeBee

Respuesta

18

De acuerdo con la documentación de MSDN para de fecha y cadenas de formato de tiempo, / es un marcador de posición:

Representa el separador de fecha definido en la corriente DateTimeFormatInfo.DateSeparator propiedad. Este separador se usa para para diferenciar años, meses y días.

Si desea una barra definitiva, el uso "MM '/' dd aaaa '/'":

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

Se utiliza el separador establecido en la configuración regional, ya que "/" es el carácter sustituto para el separador.

Usted puede crear su propia instancia DateTimeFormat con diferentes separadores.

2

Intente llamar ToString en la misma fecha y pasando el objeto CultureInfo.InvariantCulture:

string date = yourDate.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture));