Em uma pergunta recente , perguntei qual é a melhor prática para esse tipo de mudança. Não houve resposta ainda. No entanto, posso dar-lhe a receita que estou usando, que provou funcionar bem. Todos os programas escolhem a data corretamente.
Minha descrição é para o Ubuntu, mas provavelmente funcionará no Debian e no Mint.
Preparativos
Copie a localidade que você deseja personalizar de /usr/share/i18n/locales
para um novo arquivo. Por exemplo,
cp /usr/share/i18n/locales/de_DE /usr/share/i18n/locales/de_DE@isodate
Ajuste all , com exceção das seções LC_TIME
para:
copy "de_DE"
Ajuste a seção LC_TIME
para corresponder ao resultado desejado. Você pode usar as configurações da minha pergunta vinculada acima como um modelo. Parece que é exatamente isso que você quer.
Se a sua localidade não fizer uso da notação "AM / PM", defina-os como vazios:
t_fmt_ampm ""
am_pm "";""
Tornando conhecido ao sistema
Edite o arquivo /var/lib/locales/supported.d/local
e adicione as informações sobre sua definição de local. Ou seja adicione uma linha como essa se o nome do arquivo acima for isodate
, ajuste de outra forma:
de_DE.UTF-8@isodate UTF-8
Se /var/lib/locales/supported.d/local
não existir, crie um arquivo com esse nome. Não coloque as alterações no respectivo arquivo en
ou de
nessa pasta, pois elas podem ser substituídas assim que os pacotes language-pack-*-base
e language-pack-*
em seu sistema receberem uma atualização.
Agora execute dpkg-reconfigure locales
:
# dpkg-reconfigure locales
Generating locales...
de_DE.UTF-8@isodate... done
de_DE.UTF-8... up-to-date
Generation complete.
No seu caso, isso indicará que de_DE.UTF-8@isodate
locale foi gerado (supondo que você não tenha problemas de sintaxe).
Por último, mas não menos importante, adicione o seguinte a /etc/default/locale
:
LC_TIME="de_DE.UTF-8@isodate"
Isso garantirá que somente LC_TIME
substitua a localidade padrão definida usando LANG
.
Faça o login novamente e você poderá ver a nova data / hora ISO ao usar date
ou outras ferramentas usando a respectiva função de tempo de execução da libc.
A intenção aqui é fazer a alteração menos intrusiva e, ao mesmo tempo, não funcionar contra o sistema (por exemplo, contra o gerenciador de pacotes e amigos). É claro que você também pode simplesmente criar uma cópia da sua localidade, instalá-la de maneira semelhante à descrita acima e, em seguida, ajustar LANG
. A questão é que, desde que você não queira correr o risco de suas alterações serem substituídas por uma atualização de pacote, você precisará usar uma cópia personalizada (seja qual for a personalização que você escolher; por exemplo, copy
ou simplesmente mantenha as seções como estavam no original). E se você altera LANG
para apontar para a definição de localidade personalizada completa - ou se você adiciona LC_TIME
para apontar apenas para o relevante seção personalizada com o mesmo nome de um arquivo de definição de código de idioma personalizado - você não vai conseguir ajustar uma das configurações globais.