如何将日期命令的时区调整包装在字符串中?

如何将日期命令的时区调整包装在字符串中?

我正在尝试在 bash shell 脚本中输出不同时区的日期和时间。下列的这个问题,我这样做了:

#!/usr/bin/env bash

IL=":Asia/Jerusalem" date "+%a %b %d %R"
echo "Israel:    $IL"

输出如下:

Wed Jun 19 15:12
Israel:

不仅该时区的时间不正确,而且输出也错误地显示在两行中。

我希望它输出这样的内容:

Israel: Wed Jun 19 23:12

在其他脚本中,默认时区很好(例如,在 my 中.xinitrc显示当前系统时间),我已经完成:

date_str="$(date +"%a %b %d %R")";
topbar="Time: $date_str";
xsetroot -name "$top_bar";

这次我做错了什么?

答案1

您遗漏了TZ=将时区分配给命令TZ的环境变量的部分date

TZ='Asia/Jerusalem' date '+%a %b %d %R'

您链接的问题对此有非常详细的解释。

为了将此输出分配给您需要使用的变量命令替换:

IL=$(TZ='Asia/Jerusalem' date '+%a %b %d %R')

相关内容