我从API提取一个ISO8601变量“ $ sunrise”。现在,我想将其转换为当地时间。我也将$ timeZone(美国/丹佛风格)用作变量。
一个ISO8601时间戳看起来像这样:2019-11-09T11:36:14 + 00:00
我希望在当地时区提供一个友好的人间时间。这将是日出。
我已经尝试过脚本中的每个组合,如下所示:
TZ="$timeZone" newSunrise=echo $date -d "$sunrise" +"%s"
我无法正常工作。有人可以帮我吗?
基于上述解决方案,并在“本地时间”生成结果]
var="2019-11-09T11:36:14+00:00"
date -d"TZ=$(date +%Z) $var"
调用date +%Z
是必需的,因为环境变量TZ并非始终设置。在那些情况下,系统范围的“本地时区”(我相信/ etc / timezone,但可能会有其他逻辑)。
您需要将时区放入日期参考中,例如:
var="2019-11-09T11:36:14+00:00"
timeZone="America/Denver"
newsunrise=$(date -d"TZ=\"${timeZone}\" $var")
我的代码将进入程序并分配变量。我尝试调整您的两个建议,但均未按我的建议执行。
newSunrise=date -d"TZ=$(date +%Z) $sunrise"
没有数据存储在$ newSunrise中
而且,您为什么不引用引号?我正在学习。