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

时间:2012-10-15 13:21:17

标签: bash unix date

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

Mon Oct 15 13:15:29 UTC 2012

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

Mo 15. Okt 13:15:31 UTC 2012

7 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:12)

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

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

(1月左右,我将答案推到了这个答案,但我会留下我的答案,希望有些人会澄清哪个变量(LC_ALLLANG,其他)最多“适当的”。)

答案 2 :(得分:4)

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

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

答案 3 :(得分:2)

// Search Stocks const searchStocks = async () => { // await data from API const res = await axios(`https://financialmodelingprep.com/api/v3/searchquery=${state.text}&exchange=NASDAQ`); const res2 = await axios(`https://financialmodelingprep.com/api/v3/searchquery=${state.text}&exchange=NYSE`); // after data has returned in variables, then filter results let filteredResults = []; if(res1 && res2) filteredResults = [...res, ...res2].filter(stock => stock.symbol.includes(state.text.toUpperCase())) // dispatch to have filtered results added to state to show the user dispatch({ type: SEARCH_STOCKS, payload: filteredResults }); }; 就足够了,您可以使用它。

LC_TIME

答案 4 :(得分:1)

UTC:

date -u -R

本地:

date -R

答案 5 :(得分: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

答案 6 :(得分:0)

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

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

LC_ALL="de_DE.UTF-8" date