30

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

Mon Oct 15 13:15:29 UTC 2012

但在德国机器上我得到:

Mo 15. Okt 13:15:31 UTC 2012
4

7 回答 7

54

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

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

如您所见,只有第一个命令使用德语语言环境运行。

于 2012-10-15T13:34:25.963 回答
12

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

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

(January 在这个答案上领先我一分钟左右,但我会留下我的答案,希望有人能澄清哪个变量(LC_ALL, LANG, other )是最“合适的”。)

于 2012-10-15T13:35:19.440 回答
4

您是否尝试过以下操作?(我从日期手册页中得到)

# date -u +"%a %b %d %T %Z %Y"
于 2012-10-15T13:28:32.927 回答
4

安装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
于 2015-10-16T18:58:48.820 回答
4

LC_TIME够了,你可以用这个。

LC_TIME="de_DE.UTF-8"  date
于 2020-03-31T01:38:19.197 回答
1

世界标准时间:

date -u -R

当地的:

date -R
于 2014-03-09T21:04:10.407 回答
1

首先,取消注释您想要的语言环境行,/etc/locale.gen然后运行locale-gen(均以 root 身份)。确保您的终端支持所需的编码,以便显示字符。

然后,您可以为一个命令的运行时指定“临时”语言环境,如下所示:

LC_ALL="de_DE.UTF-8" date
于 2019-07-21T07:37:40.987 回答