Jak ustawić globalnie format daty na ISO w systemie Linux?

19

Chciałbym globalnie ustawić format daty Linuksa na ISO, który wygląda mniej więcej tak:

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

Z różnymi poziomami szczegółowości, takimi jak pomijanie czasu, sekund itp.

Wiem, że w przypadku niektórych aplikacji możesz to skonfigurować ręcznie, ale chciałbym, aby było ono ustawiane automatycznie dla każdego programu.

W szczególności używam Ubuntu Intrepid, ale najlepsze byłoby ogólne rozwiązanie, które działałoby we wszystkich dystrybucjach.

Neil
źródło

Odpowiedzi:

11

Ustaw zmienną środowiskową dla ustawień regionalnych LC_TIMEna „en_DK” Ustaw ją w swoim .bashrclub podobnym, lub sprawdź, man localejak ustawić ją dla całego systemu.

W ArchLinux wszystkie ustawienia regionalne /etc/rc.confsą włączone, a dostosowania są skonfigurowane w/etc/rc.local

#!/bin/bash
# Local multi-user startup script
export LC_TIME="en_DK"
Sekenre
źródło
2
Przekonałem się, że obecnie (Ubuntu 12.04) musisz ustawić go na „en_DK.UTF8”, ale poza tym dobrze wiedzieć, że duńscy ludzie używają zdrowego formatu daty ISO ;-).
pfalcon,
3
@pfalcon to nie jest „angielski w Danii”, jak można by sądzić za pomocą skrótów, to kpina, której nazwa jest dla mnie żartem ... zobacz referencje z tego błędu Freebsd, który niestety postanowił go nie adoptować : freebsd.org/cgi/query-pr.cgi?pr=137870 powiedział, że może być bardzo dobrze, że w Danii wszyscy używają mrówczanu daty ISO tho.
gcb
@gcb: Więc powinniśmy używać, en_DKczy nie?
einpoklum
4
@einpoklum Jest to obejście dla krajów anglojęzycznych. Nie ma formatu ISO dla nazw dni powszednich. Dyskusja na temat tego błędu dla glibc jest dość pouczająca (musisz przeczytać wściekłość Ulricha Dreppera): sourceware.org/bugzilla/show_bug.cgi?id=4628
Sekenre
8

Zostało to szczegółowo wyjaśnione w tym przewodniku: http://ccollins.wordpress.com/2009/01/06/how-to-change-date-formats-on-ubuntu/

Neil
źródło
Poszedłem i znalazłem link, ponieważ prestiż powiedział, że nie może publikować hiperłączy. I faktycznie byłem tam wcześniej, ale chyba nigdy nie zadałem sobie trudu, aby zrobić to na tej maszynie, co sprawia, że ​​myślę, że wszystko, co próbowałem wcześniej, nie zadziałało.
Neil
Jeśli ktoś chce ciąg Unicode dla dat ISO, to jest <U002b><U0025><U0059><U002d><U0025><U004d><U002d><U0025><U0064>. Linia pythonowa, która sprawia, że ​​jest to:''.join(['<U00{}>'.format(hex(b)[-2:]) for b in '+%Y-%M-%d'.encode('UTF-8')])
partthhehe
3

Otwórz za locale.confpomocą edytora

# $EDITOR /etc/locale.conf

i wstaw linię

TIME_STYLE=iso

po zapisaniu uruchom plik

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

i przetestuj wynik

# ls -al /home
drwxr-xr-x   8 root             root      4096 2011-12-2  .
...
Jonas Stein
źródło
2
Co to za dystrybucja? Na przykład w Ubuntu ten plik nawet nie istnieje.
0xC0000022L
@ 0xC0000022L to samo dotyczy Ubuntu, tutaj jest strona manpages.ubuntu.com/manpages/artful/man5/locale.conf.5.html
Jonas Stein
Łatwy do zrobienia dwa i pół roku później i odwołujący się do wersji, która nie istniała w 2014 ani 2015 roku;)
0xC0000022L
2

Niektórzy ludzie radzą zmienić ten lokalny na niemiecki „en_DK” tego rodzaju, jeśli nie przeszkadza ci, że nazwy dnia i miesiąca są w języku niemieckim. Ponieważ nie mogę publikować hiperłączy, a ta tablica widzi moje polecenia linuksa jako hiperłącza ... (fajne) ... Mogę tylko powiedzieć, że wyszukujesz (google) jak zmienić formaty daty na Ubuntu i kliknąć pierwszy link.

użytkownik7285
źródło
1
Miał na myśli ten link: ccollins.wordpress.com/2009/01/06/…
Neil
2
pl_DK też nie jest niemieckim miejscem, to duński.
GodEater
to nie jest ani jedno. „en” to angielski. część „DK” to kraj, w którym ustawia się symbole walut, formaty dat i separatory dziesiętne itp. Pierwszą częścią jest język, który określa nazwy miesięcy.
gcb