¿Cómo configuro el formato de fecha a ISO globalmente en Linux?

19

Me gustaría establecer globalmente el formato de fecha de Linux en ISO, que se ve más o menos así:

YYYY-MM-DD HH:MM:SS
2009-03-16 15:20:00

Con diferentes niveles de detalle, como omitir tiempo, segundos, etc.

Sé que para algunas aplicaciones, puede configurar esto manualmente, pero me gustaría que se configure automáticamente para cada programa.

Estoy usando Ubuntu Intrepid específicamente, pero una solución general que funcione en todas las distribuciones sería la mejor.

Neil
fuente

Respuestas:

11

Establezca su variable de entorno de fecha de configuración regional LC_TIMEen "en_DK". Configúrela en su .bashrco similar, o verifique man localecómo configurarla en todo el sistema.

En ArchLinux, todas las configuraciones /etc/rc.conflocales están activadas y las personalizaciones están configuradas en/etc/rc.local

#!/bin/bash
# Local multi-user startup script
export LC_TIME="en_DK"
Sekenre
fuente
2
Descubrí que hoy en día (Ubuntu 12.04) necesita establecerlo en "en_DK.UTF8", pero por lo demás, es bueno saber que la gente danesa usa un formato de fecha ISO sensato ;-).
pfalcon
3
@pfalcon no es "inglés en Dinamarca", ya que las abreviaturas lo harían creer, es simulado, cuyo nombre es una broma que se me ha perdido ... vea las referencias de este error de freebsd, que desafortunadamente decidió no adoptarlo : freebsd.org/cgi/query-pr.cgi?pr=137870 dicho esto, puede ser muy bueno que en Dinamarca todos usen el formato de fecha ISO aunque.
gcb
@gcb: Entonces, ¿deberíamos usarlo en_DKo no?
einpoklum
44
@einpoklum Es una solución para los países de habla inglesa. No hay formato ISO para los nombres de los días laborables. La discusión sobre este error para glibc es bastante informativa (debe leer más allá de que Ulrich Drepper esté enojado): sourceware.org/bugzilla/show_bug.cgi?id=4628
Sekenre
8

Se explica detalladamente en esta guía: http://ccollins.wordpress.com/2009/01/06/how-to-change-date-formats-on-ubuntu/

Neil
fuente
Fui y encontré el enlace ya que el prestigiado dijo que no podía publicar hipervínculos. Y en realidad había estado allí antes, pero supongo que nunca me molesté en hacerlo en esta máquina, haciéndome pensar que lo que haya intentado antes no funcionó.
Neil
Si alguien quiere la cadena Unicode para fechas ISO, es <U002b><U0025><U0059><U002d><U0025><U004d><U002d><U0025><U0064>. La línea de pitón que hace esto es:''.join(['<U00{}>'.format(hex(b)[-2:]) for b in '+%Y-%M-%d'.encode('UTF-8')])
partofthething
3

Abre locale.confcon tu editor

# $EDITOR /etc/locale.conf

e inserte la línea

TIME_STYLE=iso

después de guardar el archivo ejecutado

# locale-gen
# env-update && source /etc/profile

y prueba el resultado

# ls -al /home
drwxr-xr-x   8 root             root      4096 2011-12-2  .
...
Jonas Stein
fuente
2
¿Qué distribución es esa? En Ubuntu, por ejemplo, ese archivo ni siquiera existe.
0xC0000022L
@ 0xC0000022L es lo mismo para Ubuntu aquí está la página de manual manpages.ubuntu.com/manpages/artful/man5/locale.conf.5.html
Jonas Stein
Fácil para el día dos años y medio después y haciendo referencia a una versión que no existía en 2014 o 2015;)
0xC0000022L
2

Algunas personas aconsejarían cambiar su "en_DK" local a alemán, este tipo de trabajo si no le importa que los nombres de día y mes estén en alemán. Como no puedo publicar hipervínculos, y este tablero ve mis comandos de Linux como hipervínculos ... (bueno) ... solo puedo decir que buscas (google) cómo-cambiar-fecha-formatos-en-ubuntu y haces clic El primer enlace.

usuario7285
fuente
1
Se refería a este enlace: ccollins.wordpress.com/2009/01/06/…
Neil
2
en_DK tampoco es la configuración regional alemana, es danesa.
GodEater
No es ninguno. "en" es inglés. la parte "DK" es el país que establece cosas como símbolos de moneda, formatos de fecha y separadores decimales, etc. La primera parte es el idioma, que determinaría los nombres de los meses.
gcb