如何在Linux中全局将日期格式设置为ISO?


19

我想将Linux日期格式全局设置为ISO,大致如下所示:

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

具有不同级别的细节,例如省略时间,秒数等。

我知道对于某些应用程序,您可以手动配置它,但是我希望为每个程序自动设置它。

我专门使用Ubuntu Intrepid,但是最好在所有发行版中都可以使用的通用解决方案。

Answers:


11

将您的区域设置日期环境变量LC_TIME设置为“ en_DK”。使用您的变量.bashrc或类似变量进行设置,或者检查man locale如何在系统范围内进行设置。

ArchLinux上,所有区域设置均已设置,/etc/rc.conf并且自定义设置在/etc/rc.local

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

2
我发现,如今(Ubuntu 12.04)您需要将其设置为“ en_DK.UTF8”,但除此之外,很高兴知道丹麦人使用理智的ISO日期格式;-)。
pfalcon

3
@pfalcon它不是“丹麦语中的英语”,因为缩写使人​​相信,它是模拟的,这个名字对我来说是个笑话。 :freebsd.org/cgi/query-pr.cgi?pr=137870表示,在丹麦,每个人都使用ISO日期格式可能会很好。
gcb 2014年

@gcb:那么我们应该使用en_DK还是不使用?
einpoklum

4
@einpoklum对于英语国家来说,这是一种解决方法,工作日名称没有ISO格式。关于glibc的此错误的讨论非常有益
Sekenre,2017年

8

我去找链接,因为有名望的人说他不能发布超链接。我实际上曾经去过那里,但是我想我从来没有在这台机器上做过这件事,这让我觉得我以前尝试过的任何东西都行不通。
尼尔

如果有人想要Unicode字符串作为ISO日期,则为<U002b><U0025><U0059><U002d><U0025><U004d><U002d><U0025><U0064>。蟒蛇行,使这是:''.join(['<U00{}>'.format(hex(b)[-2:]) for b in '+%Y-%M-%d'.encode('UTF-8')])
partofthething

3

locale.conf与您的编辑者一起打开

# $EDITOR /etc/locale.conf

并插入线

TIME_STYLE=iso

保存文件后运行

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

并测试结果

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

2
那是什么发行版?例如,在Ubuntu上,该文件甚至不存在。
0xC0000022L

@ 0xC0000022L,对于Ubuntu来说也一样,这里是联机帮助
Jonas Stein

容易在两年半后的一天,并引用2014年或2015年不存在的版本;)
0xC0000022L

2

如果您不介意日期和月份的名称是德语,则有人建议将您的本地名称更改为德语“ en_DK”。由于我无法发布超链接,因此该面板将我的linux命令视为超链接....(不错)...我只能说您搜索(谷歌)ubuntu的how-to-change-date-formats-on,然后单击第一个链接。


1
他的意思是这个链接:ccollins.wordpress.com/2009/01/06/…– 2009
尼尔

2
en_DK也不是德语语言环境,它是丹麦语。
GodEater

两者都不是。“ en”是英语。“ DK”部分是用于设置货币符号,日期格式和小数点分隔符等内容的国家/地区。第一部分是用于确定月份名称的语言。
gcb 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.