强制“date”使用机器默认值以外的区域设置

问题描述 投票:21回答:5

有没有办法强制* nix命令“date”以独立于本地的特定格式输出?例如,如果今天我打电话给“date -u”,我会在美国机器上得到:

Mon Oct 15 13:15:29 UTC 2012

但在德国的机器上我得到:

Mo 15. Okt 13:15:31 UTC 2012
bash unix date
5个回答
35
投票

当然,您可以自己指定格式:

date +%a, %b %d

或者您可以使用临时环境变量:

:~$ LC_ALL=de_DE.utf8 date
Mo 15. Okt 15:34:11 CEST 2012
:~$ date
Mon Oct 15 15:33:24 CEST 2012

如您所见,只有第一个命令与德语区域设置一起运行。


12
投票

您可以修改date运行的环境。我不知道这是否是最好的方法(区域设置处理中使用的变量很多),但以下工作:

$ LANG=de_DE date
Mo 15 Okt 2012 09:34:12 EDT

(一月左右,我把答案打到了这个答案,但我会留下我的答案,希望有些人会澄清哪个变量(LC_ALLLANG,other)最“合适”。)


4
投票

你试过以下吗? (我从日期手册页得到的)

# date -u +"%a %b %d %T %Z %Y"

1
投票

世界标准时间:

date -u -R

本地:

date -R

1
投票

首先,确保安装了目标语言环境的语言包。在Debian派生的GNU / Linux发行版中,荷兰语语言支持安装如下:

$ sudo apt-get install language-pack-nl

此命令将自动安装language-pack-nl-base。这是我通过指定LC_TIME得到的。这比使用LC_ALL更具体。 (指定LANG不适用于Xubuntu LTS。)

$ date '+%A %e %B %Y'
Friday 16 October 2015

$ LC_TIME='nl_BE.UTF-8' date '+%A %e %B %Y'
vrijdag 16 oktober 2015
© www.soinside.com 2019 - 2024. All rights reserved.