Làm cách nào để đặt định dạng ngày thành ISO trên toàn cầu trong Linux?


19

Tôi muốn đặt toàn cầu định dạng ngày Linux thành ISO, trông giống như thế này:

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

Với các mức độ chi tiết khác nhau, chẳng hạn như bỏ qua thời gian, giây, v.v.

Tôi biết rằng đối với một số ứng dụng, bạn có thể định cấu hình thủ công, nhưng tôi muốn nó được đặt tự động cho mọi chương trình.

Tôi đặc biệt sử dụng Ubuntu Intrepid, nhưng một giải pháp chung có thể hoạt động trên tất cả các bản phân phối sẽ là tốt nhất.

Câu trả lời:


11

Đặt biến môi trường ngày địa phương của bạn LC_TIMEthành "en_DK" Đặt nó trong .bashrchoặc tương tự hoặc kiểm tra man localecách đặt toàn bộ hệ thống.

Trên ArchLinux, tất cả các cài đặt Địa điểm đều được cài đặt /etc/rc.confvà các tùy chỉnh được thiết lập trong/etc/rc.local

#!/bin/bash
# Local multi-user startup script
export LC_TIME="en_DK"

2
Tôi thấy rằng ngày nay (Ubuntu 12.04) bạn cần đặt nó thành "en_DK.UTF8", nhưng nếu không, thật tuyệt khi biết rằng người Đan Mạch sử dụng định dạng ngày ISO lành mạnh ;-).
pfalcon

3
@pfalcon nó không phải là "tiếng Anh ở Đan Mạch" vì các chữ viết tắt sẽ khiến người ta tin rằng, đó là giả, tên đó là một trò đùa bị mất đối với tôi ... xem các tài liệu tham khảo từ lỗi freebsd này, không may quyết định không chấp nhận nó : freebsd.org/cgi/query-pr.cgi?pr=137870 đã nói rằng, có thể rất tốt là ở Đan Mạch mọi người đều sử dụng định dạng ngày ISO.
gcb

@gcb: Vậy chúng ta có nên sử dụng en_DKhay không?
einpoklum

4
@einpoklum Đó là một cách giải quyết cho các quốc gia nói tiếng Anh, Không có định dạng ISO cho tên ngày trong tuần. Cuộc thảo luận về lỗi này đối với glibc khá nhiều thông tin (Bạn phải đọc qua Ulrich Drepper đang tức giận): sourceware.org/ormszilla/show_orms.cgi?id=4628
Sekenre

8

Nó được giải thích theo chiều dài trong hướng dẫn này: http://ccollins.wordpress.com/2009/01/06/how-to-change-date-formats-on-ub Ubuntu /


Tôi đã đi và tìm thấy các liên kết kể từ khi uy quyền nói rằng anh ấy không thể đăng siêu liên kết. Và tôi thực sự đã từng ở đó trước đây, nhưng tôi đoán tôi chưa bao giờ bận tâm làm điều đó trên chiếc máy này, khiến tôi nghĩ bất cứ điều gì tôi đã thử trước khi không hoạt động.
Neil

Nếu bất cứ ai muốn chuỗi Unicode cho ngày ISO, thì đó là <U002b><U0025><U0059><U002d><U0025><U004d><U002d><U0025><U0064>. Dòng python tạo ra điều này là:''.join(['<U00{}>'.format(hex(b)[-2:]) for b in '+%Y-%M-%d'.encode('UTF-8')])
partofthet Breath 16/12/17

3

Mở locale.confbằng trình chỉnh sửa của bạn

# $EDITOR /etc/locale.conf

và chèn dòng

TIME_STYLE=iso

sau khi lưu tập tin chạy

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

và kiểm tra kết quả

# ls -al /home
drwxr-xr-x   8 root             root      4096 2011-12-2  .
...

2
Cái gì vậy? Trên Ubuntu, ví dụ, tập tin đó thậm chí không tồn tại.
0xC0000022L

@ 0xC0000022L cũng tương tự với Ubuntu, đây là manpage manpages.ubfox.com/manpages/artful/man5/locale.conf.5.html
Jonas Stein

Dễ dàng đến ngày hai năm rưỡi sau và tham khảo một phiên bản không tồn tại vào năm 2014 hoặc 2015;)
0xC0000022L

2

Một số người sẽ khuyên thay đổi địa phương của bạn thành tiếng Đức "en_DK" loại công việc này nếu bạn không nhớ tên ngày và tháng bằng tiếng Đức. Vì tôi không thể đăng siêu liên kết và bảng này xem các lệnh linux của tôi là siêu liên kết .... (tôi rất tốt) liên kết đầu tiên.


1
Anh ta có nghĩa là liên kết này: ccollins.wordpress.com/2009/01/06/ Khăn
Neil

2
en_DK cũng không phải là địa phương của Đức, đó là Đan Mạch.
GodEater

nó cũng không "En" là tiếng Anh. phần "DK" là quốc gia đặt các thứ như ký hiệu tiền tệ, định dạng ngày và dấu tách thập phân, v.v ... Phần đầu tiên là ngôn ngữ, sẽ xác định tên tháng.
gcb

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.