Bagaimana cara mengatur format tanggal ke ISO secara global di Linux?

19

Saya ingin secara global mengatur format tanggal Linux ke ISO, yang kira-kira terlihat seperti ini:

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

Dengan berbagai tingkat detail, seperti menghilangkan waktu, detik, dll.

Saya tahu bahwa untuk beberapa aplikasi, Anda dapat mengonfigurasi ini secara manual, tetapi saya ingin agar secara otomatis diatur untuk setiap program.

Saya secara khusus menggunakan Ubuntu Intrepid, tetapi solusi umum yang akan bekerja di semua distribusi akan menjadi yang terbaik.

Neil
sumber

Jawaban:

11

Setel variabel lingkungan tanggal lokal Anda LC_TIMEke "en_DK" Atur dalam .bashrcatau serupa Anda, atau periksa man localebagaimana mengaturnya di seluruh sistem.

Pada ArchLinux, semua pengaturan Lokal berada di /etc/rc.confdan kustomisasi diatur dalam/etc/rc.local

#!/bin/bash
# Local multi-user startup script
export LC_TIME="en_DK"
Sekenre
sumber
2
Saya menemukan bahwa saat ini (Ubuntu 12.04) Anda perlu mengaturnya ke "en_DK.UTF8", tetapi sebaliknya, senang mengetahui bahwa orang Denmark menggunakan format tanggal ISO yang waras ;-).
pfalcon
3
@pfalcon itu bukan "bahasa Inggris di Denmark" karena singkatannya akan membuat orang percaya, itu mengejek, yang namanya lelucon yang hilang untuk saya ... lihat referensi dari bug freebsd ini, yang sayangnya memutuskan untuk tidak mengadopsinya : freebsd.org/cgi/query-pr.cgi?pr=137870 yang mengatakan, mungkin sangat baik bahwa di Denmark semua orang menggunakan format tanggal ISO tho.
gcb
@ gcb: Jadi haruskah kita menggunakan en_DKatau tidak?
einpoklum
4
@einpoklum Ini adalah solusi untuk negara berbahasa Inggris, Tidak ada format ISO untuk nama hari kerja. Diskusi tentang bug ini untuk glibc cukup informatif (Anda harus membaca bahwa sebelumnya Ulrich Drepper
Sekenre
8

Ini dijelaskan panjang lebar dalam panduan ini: http://ccollins.wordpress.com/2009/01/06/how-to-change-date-formats-on-ubuntu/

Neil
sumber
Saya pergi dan menemukan tautan itu sejak prestiginate mengatakan dia tidak bisa memposting hyperlink. Dan saya sebenarnya sudah ada di sana sebelumnya, tapi saya rasa saya tidak pernah repot melakukannya di mesin ini, membuat saya berpikir apa pun yang saya coba sebelumnya tidak berhasil.
Neil
Jika ada yang menginginkan string Unicode untuk tanggal ISO, itu <U002b><U0025><U0059><U002d><U0025><U004d><U002d><U0025><U0064>. Garis python yang membuat ini adalah:''.join(['<U00{}>'.format(hex(b)[-2:]) for b in '+%Y-%M-%d'.encode('UTF-8')])
partofthething
3

Buka locale.confdengan editor Anda

# $EDITOR /etc/locale.conf

dan masukkan garis

TIME_STYLE=iso

setelah menyimpan file dijalankan

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

dan uji hasilnya

# ls -al /home
drwxr-xr-x   8 root             root      4096 2011-12-2  .
...
Jonas Stein
sumber
2
Distro apa itu? Di Ubuntu, misalnya, file itu bahkan tidak ada.
0xC0000022L
@ 0xC0000022L sama dengan Ubuntu di sini adalah manpage manpages.ubuntu.com/manpages/artful/man5/locale.conf.5.html
Jonas Stein
Mudah untuk hari dua setengah tahun kemudian dan merujuk versi yang tidak ada pada 2014 atau 2015;)
0xC0000022L
2

Beberapa orang akan menyarankan untuk mengubah lokal Anda ke bahasa Jerman "en_DK" jenis pekerjaan ini jika Anda tidak keberatan nama hari dan bulan dalam bahasa Jerman. Karena saya tidak dapat memposting hyperlink, dan forum ini melihat perintah linux saya sebagai hyperlink .... (bagus) ... Saya hanya bisa mengatakan Anda mencari (google) bagaimana-untuk-mengubah-format-tanggal-di-Ubuntu dan klik tautan pertama.

pengguna7285
sumber
1
Dia maksudkan tautan ini: ccollins.wordpress.com/2009/01/06/...
Neil
2
en_DK juga bukan bahasa Jerman, tapi Denmark.
GodEater
tidak juga. "en" adalah bahasa Inggris. bagian "DK" adalah negara yang menetapkan hal-hal seperti simbol mata uang, format tanggal dan pemisah desimal, dll. Bagian pertama adalah bahasa, yang akan menentukan nama bulan.
gcb