在一个系统上,我得到如下所示的日期命令输出
system1# date
Thu Oct 18 10:34:36 BST 2018
而另一个类似的盒子显示它像
system2#date
Thu 18 Oct 10:34:50 BST 2018
两者都在不同的列中显示月份。当我做一个
env LC_ALL=C date
在 system2 上,我以正常方式得到它“Thu Oct 18 10:34:36 BST 2018”
在两个系统上,本地显示相同,没有任何差异。
#locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=
任何想法
答案1
因此,您将获得美国格式的输出(当 LC_ALL 设置为默认值时),或者您将获得英语版本的输出。
请注意,美国人使用的日期格式中的奇怪顺序也很少在其他国家/地区使用......并且绝对不在英国使用
因此,如果您希望在两个系统上获得相同的输出,请在两个系统上设置相同的区域设置或使用显式日期格式:
date '+%a %b %e %T %Z %Y'
此示例使用 C 语言环境默认的日期格式。
答案2
如果您想要标准日期输出,请使用 ISO 8601 标志
robert@pip2:/tmp$ date
Thu May 30 07:16:51 PDT 2019
robert@pip2:/tmp$ date --iso-8601
2019-05-30
robert@pip2:/tmp$