Como defino o formato da data para ISO globalmente no Linux?

19

Gostaria de definir globalmente o formato de data do Linux para ISO, que se parece aproximadamente com isso:

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

Com níveis variados de detalhes, como omissão de tempo, segundos etc.

Eu sei que, para alguns aplicativos, você pode configurá-lo manualmente, mas eu gostaria que fosse definido automaticamente para cada programa.

Estou usando especificamente o Ubuntu Intrepid, mas uma solução geral que funcionaria em todas as distribuições seria melhor.

Neil
fonte

Respostas:

11

Defina a variável de ambiente da data da localidade LC_TIMEcomo "en_DK" Configure-a como sua .bashrcou similar ou verifique man localecomo configurá-la em todo o sistema.

No ArchLinux, todas as configurações de localidade estão localizadas /etc/rc.confe as personalizações são definidas em/etc/rc.local

#!/bin/bash
# Local multi-user startup script
export LC_TIME="en_DK"
Sekenre
fonte
2
Descobri que hoje em dia (Ubuntu 12.04) você precisa configurá-lo para "en_DK.UTF8", mas, caso contrário, é bom saber que o pessoal dinamarquês usa o formato de data ISO ;-).
Pfalcon
3
@pfalcon não é "inglês na Dinamarca", como as abreviaturas nos fazem acreditar, é falso, que nome é uma piada que está perdida para mim ... veja as referências desse bug do freebsd, que infelizmente decidiu não adotá-lo : freebsd.org/cgi/query-pr.cgi?pr=137870 dito isso, pode ser muito bom que na Dinamarca todos usem o formato de data ISO tho.
gcb
@gcb: Então devemos usar en_DKou não?
einpoklum
4
@einpoklum É uma solução alternativa para países de língua inglesa. Não há formato ISO para nomes de dias da semana. A discussão sobre este bug para o glibc é bastante informativa (você deve ler o passado de Ulrich Drepper com raiva): sourceware.org/bugzilla/show_bug.cgi?id=4628
Sekenre
8

É explicado detalhadamente neste guia: http://ccollins.wordpress.com/2009/01/06/how-to-change-date-formats-on-ubuntu/

Neil
fonte
Eu fui e encontrei o link, já que o prestigiado disse que ele não podia postar hiperlinks. Na verdade, eu já estava lá antes, mas acho que nunca me incomodei em fazê-lo nesta máquina, me fazendo pensar que tudo o que eu tentava antes não funcionava.
Neil
Se alguém quiser a string Unicode para datas ISO, é <U002b><U0025><U0059><U002d><U0025><U004d><U002d><U0025><U0064>. A linha python que faz isso é:''.join(['<U00{}>'.format(hex(b)[-2:]) for b in '+%Y-%M-%d'.encode('UTF-8')])
partofthething
3

Abra locale.confcom seu editor

# $EDITOR /etc/locale.conf

e insira a linha

TIME_STYLE=iso

depois de salvar o arquivo executado

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

e testar o resultado

# ls -al /home
drwxr-xr-x   8 root             root      4096 2011-12-2  .
...
Jonas Stein
fonte
2
Que distro é essa? No Ubuntu, por exemplo, esse arquivo nem existe.
0xC0000022L
@ 0xC0000022L é o mesmo para o Ubuntu, aqui está a página de manual manpages.ubuntu.com/manpages/artful/man5/locale.conf.5.html
Jonas Stein
Fácil para o dia dois anos e meio depois e fazer referência a uma versão que não existia em 2014 ou 2015;)
0xC0000022L
2

Algumas pessoas recomendariam que você altere seu local para alemão "en_DK", se você não se importar com o nome do dia e do mês em alemão. Como não consigo postar hiperlinks, e este fórum vê meus comandos linux como hiperlinks .... (um bom) ... só posso dizer que você pesquisa no (google) como alterar a formatação da data no ubuntu e clica em o primeiro link.

user7285
fonte
11
Ele quis dizer este link: ccollins.wordpress.com/2009/01/06/...
Neil
2
en_DK também não é o local alemão, é dinamarquês.
GodEater
não é nenhum. "en" é inglês. a parte "DK" é o país que define itens como símbolos de moeda, formatos de data e separadores decimais etc. A primeira parte é o idioma, que determinaria os nomes dos meses.
gcb 12/02