Observación preliminar : Esta pregunta es no sobre el establecimiento de un local cambiando LC_ALL, LC_TIME, LANG, etc, es bastante acerca de cómo cambiar una configuración regional de definición , por ejemplo, en /usr/share/i18n/locales/de_DE, o, respectivamente, para obtener sugerencias acerca de las opciones más apropiadas que cambiar los ajustes del sistema.
La intención es obtener representaciones de tiempo ISO %Y-%m-%d y %H:%M:%Ssin efectos secundarios no deseados.
Las sugerencias que encontré en la red todavía eran inapropiadas (por ejemplo, establecer la configuración regional en "danés" no mantendrá los nombres de los días de la semana escritos en el idioma nativo).
Ahora, la única opción que veo actualmente para obtener el comportamiento deseado es cambiar la definición de mi ubicación nativa en /usr/share/i18n/locales/de_DE. Esta no es una solución perfecta ya que con las actualizaciones del sistema, esos archivos modificados pueden sobrescribirse nuevamente.
Mis preguntas son:
- ¿Existen mejores opciones relacionadas con la configuración regional para obtener la función deseada que cambiar el archivo de configuración regional del sistema específico?
- ¿Hay algún problema que esperar al cambiar un archivo de definición de configuración regional específico? (¿Y cómo podría evitarse que este archivo se sobrescriba en caso de actualizaciones del sistema?)
- ¿Sería mejor definir una nueva variante específica de un archivo de configuración regional existente y usarla en la
LC_*configuración? (¿Y cómo el nuevo archivo / definición se daría a conocer correctamente al sistema?) - ¿Cualquier otra sugerencia?

en_XX- No sé cuáles son las restricciones aquí, la prueba y el error pueden ser suficientes), realice los cambios que desee y úsalo como configuración regional. Vas a tener que regenerar la lista o lo que sea después, etcLC_TIME(en/etc/environmento/etc/default/locale, o/etc/locale.confen función de distribución) a la configuración regional modificado (llamé a la minaisodate.UTF-8) y el formato respectivo ser recogido de esa localidad personalizado por sólo hora / fecha. Así es como personalicé mien_USconfiguración para mostrar la fecha / hora ISO./var/lib/locales/supported.d/local(o uno de los otros archivos allí) y ejecutarlodpkg-reconfigure localescomo superusuario para que se compile la definición de la configuración regional. Y sí, configurarLC_TIMEpara apuntar a una configuración regional personalizada parece ser el método menos intrusivo de todo lo que he visto hasta ahora. Es por eso que su sistema tiene una configuración global dondeLC_TIMEse puede configurar de forma diferente a la "configuración regional general".copyenfoque de secciones activas o mantener otras secciones redundantes (para poderdiffcontra el archivo original).Respuestas:
En una pregunta reciente , pregunté cuál es la mejor práctica para este tipo de cambio. No hubo respuesta todavía. Sin embargo, puedo darle la receta que estoy usando, que ha demostrado funcionar bien. Todos los programas recogen la fecha correctamente.
Mi descripción es para Ubuntu, pero probablemente funcionará en Debian y Mint.
Preparativos
Copie la configuración regional desde la que desea personalizar
/usr/share/i18n/localesa un nuevo archivo. P.ejAjuste todo con la excepción de las
LC_TIMEsecciones a:Ajuste la
LC_TIMEsección para que coincida con el resultado deseado. Puede usar la configuración de mi pregunta vinculada anterior como plantilla. Parece que esto es exactamente lo que quieres.Si su configuración regional no utiliza la notación "AM / PM", configúrelas para que se vacíen:
Darlo a conocer al sistema
Edite el archivo
/var/lib/locales/supported.d/localy agregue la información sobre su definición de configuración regional allí. Es decir, agregue una línea como esta si su nombre de archivo anterior eraisodate, ajústelo de otra manera:Si
/var/lib/locales/supported.d/localno existe, cree un archivo con ese nombre. No ponga los cambios en el respectivoenodearchivo en esa carpeta, ya que pueden obtener sobrescribe tan pronto como ellanguage-pack-*-baseylanguage-pack-*paquetes en el sistema recibe una actualización.Ahora ejecuta
dpkg-reconfigure locales:En su caso, esto indicará que
de_DE.UTF-8@isodatese ha generado la configuración regional (suponiendo que no tenga problemas de sintaxis).Por último, pero no menos importante, agregue lo siguiente a
/etc/default/locale:Esto garantizará que solo
LC_TIMEanule la configuración regional predeterminada definida medianteLANG.Inicie sesión de nuevo y debería poder ver la nueva fecha / hora ISO cuando use
dateu otras herramientas que usen la función de tiempo de ejecución libc respectiva.La intención aquí es hacer el cambio menos intrusivo sin trabajar contra el sistema (por ejemplo, contra el administrador de paquetes y amigos). Por supuesto, también puede simplemente crear una copia de su configuración regional, instalarla de una manera similar a la descrita anteriormente y luego ajustarla
LANG. El punto es que, mientras no quiera correr el riesgo de que sus cambios se sobrescriban con una actualización del paquete, debe usar una copia personalizada (cualquiera sea la personalización que elija; es decir,copyo simplemente mantener las secciones como estaban en el original). Y si cambiaLANGpara apuntar a la definición regional personalizada completa , o si agregaLC_TIMEpara apuntar solo a la sección personalizada relevante del mismo nombre de un archivo de definición de configuración regional personalizada: no podrá ajustar una de las configuraciones globales.fuente
en_US.UTF-8@isodate.copyelLC_IDENTIFICATIONy cómo afectaría eso a los nombres de los archivos y cómo se hace referencia a la configuración regional en/etc/default/localey/var/lib/locales/supported.d/localrespectivamente? ¿Puedes decir?en_US@isodatearchivo de definición y lo usaríalocaledefpara producir los archivos correctos; ver sourceware.org/git/?p=glibc.git;a=blob;f=localedata/README para más detalles (y sourceware.org/git/?p=glibc.git;a=blob;f=localedata/locales/ ... por un ejemplo).localedef -i en_US@isodate -f UTF-8 en_US.UTF-8@isodate, no estoy seguro acerca de la configuración específica de Debian, mi comentario fue principalmente sobre cómo para nombrar la localidad./usr/local/share/i18n/locales, agregaría los pares de configuración regional / mapa de caracteres compatibles/usr/local/share/i18n/SUPPORTEDy ejecutaríadpkg-reconfigure locales(ver también/etc/locale.gen).