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

Nei*_*eil 25 linux configuration formatting

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

YYYY-MM-DD HH:MM:SS
2009-03-16 15:20:00
Run Code Online (Sandbox Code Playgroud)

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

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

我专门使用 Ubuntu Intrepid,但最好是适用于所有发行版的通用解决方案。

Sek*_*nre 14

将您的语言环境日期环境变量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"
Run Code Online (Sandbox Code Playgroud)

  • @pfalcon 它不是“丹麦的英语”,因为缩写会让人们相信,它是模拟的,哪个名字是我失去的笑话......请参阅此 freebsd 错误的参考资料,不幸的是它决定不采用它:http://www.freebsd.org/cgi/query-pr.cgi?pr=137870 说,在丹麦每个人都使用 ISO 日期格式可能很好。 (4认同)
  • @einpoklum 这是适用于英语国家的解决方法,工作日名称没有 ISO 格式。关于 glibc 的这个 bug 的讨论非常有用(你必须读过 Ulrich Drepper 生气了):https://www.sourceware.org/bugzilla/show_bug.cgi?id=4628 (4认同)
  • 我发现如今(Ubuntu 12.04)您需要将其设置为“en_DK.UTF8”,但除此之外,很高兴知道丹麦人使用合理的 ISO 日期格式 ;-)。 (2认同)

Jon*_*ein 5

locale.conf用你的编辑器打开

# $EDITOR /etc/locale.conf
Run Code Online (Sandbox Code Playgroud)

并插入行

TIME_STYLE=iso
Run Code Online (Sandbox Code Playgroud)

保存文件后运行

# locale-gen
# env-update && source /etc/profile
Run Code Online (Sandbox Code Playgroud)

并测试结果

# ls -al /home
drwxr-xr-x   8 root             root      4096 2011-12-2  .
...
Run Code Online (Sandbox Code Playgroud)

  • 那是什么发行版?例如,在 Ubuntu 上,该文件甚至不存在。 (3认同)