2010-09-27 14 views
5

Tengo la variable DateTime y quiero convertirla a la cadena "DD.MM.YYYY" Tenga en cuenta que los valores deben estar separados por el signo "punto".DateTime: cómo mostrar como DD.MM.YYYY?

Por supuesto que puedo hacer la composición de cuerda manual. Pero me pregunto si puedo usar DateTime.ToString() para hacer la conversión requerida.

Respuesta

13

sí, se puede:

string formatted = dt.ToString("dd'.'MM'.'yyyy"); 

Ahora bien, en este caso no se requiere realmente las cotizaciones, como custom date/time format strings no interprete punto de ninguna manera especial. Sin embargo, me gustaría hacerlo explícito, si cambias '.' para ':' por ejemplo, mientras está citado permanecerá con el carácter explícito, pero sin comillas sería "el separador de tiempo específico de la cultura". No era completamente obvio para mí si "." se interpretaría como "el separador decimal específico del cultivo" o no, de ahí la cita. Puede sentir que está exagerado, por supuesto, es completamente su decisión.

Usted puede también desee especificar la referencia cultural de todos, sólo para quitar cualquier otro rastro de duda: "".

string formatted = dt.ToString("dd'.'MM'.'yyyy", CultureInfo.InvariantCulture); 

(En ese momento las comillas alrededor del punto de llegar a ser menos relevante, tal como se el separador decimal en la referencia cultural de todos modos)

+0

+1: Gracias por la información detallada sobre las citas, cualquiera sea su significado en este caso. –

8

Sí, puede utilizar DateTime.ToString así:

myDateVariable.ToString("dd.MM.yyyy"); 

Tenga en cuenta que usted tiene que utilizar el capital MM aquí, ya que evalúa mm de minutos en lugar de meses.

2

puede dar formato a la fecha de la siguiente manera:.

date.ToString("dd.MM.yyyy") 

Cuando formatt El número . cambiará según el CultureInfo utilizado, pero no al formatear las fechas.

Si usted verifica su código contra la regla de análisis de código CA1304: Specify CultureInfo tendrá que utilizar la referencia cultural invariable a pesar de que no importa para este formato en particular:

date.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture) 
3

Aquí es una alternativa para usted:

DateTime.Now.ToString("d", new CultureInfo("de-DE")) 

Alemán use . como separador de fecha.

+1

¿De verdad quieres que todos los que leen el código lo sepan? ¿No es más simple deletrearlo? –

+0

Además, creo que es posible anular cualquier cultura con su propia configuración, por lo que no se garantiza el comportamiento. –

+0

tenga en cuenta la palabra ** alternativa **, gracias por el aviso de todos modos –

Cuestiones relacionadas