有没有办法强制 *nix 命令“date”以独立于本地的特定格式输出?例如,如果我今天在美国机器上调用“date -u”,我会得到:
Mon Oct 15 13:15:29 UTC 2012
但在德国机器上我得到:
Mo 15. Okt 13:15:31 UTC 2012
当然,您始终可以自己指定格式:
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
如您所见,只有第一个命令使用德语语言环境运行。
你可以修改date
运行的环境。我不知道这是否是最好的方法(语言环境处理中使用的变量很多),但以下工作:
$ LANG=de_DE date
Mo 15 Okt 2012 09:34:12 EDT
(January 在这个答案上领先我一分钟左右,但我会留下我的答案,希望有人能澄清哪个变量(LC_ALL
, LANG
, other )是最“合适的”。)
您是否尝试过以下操作?(我从日期手册页中得到)
# date -u +"%a %b %d %T %Z %Y"
language-pack-xx
首先,确保安装了目标语言环境的语言包。在 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
LC_TIME
够了,你可以用这个。
LC_TIME="de_DE.UTF-8" date
世界标准时间:
date -u -R
当地的:
date -R
首先,取消注释您想要的语言环境行,/etc/locale.gen
然后运行locale-gen
(均以 root 身份)。确保您的终端支持所需的编码,以便显示字符。
然后,您可以为一个命令的运行时指定“临时”语言环境,如下所示:
LC_ALL="de_DE.UTF-8" date