在UNIX时间戳Shell / Bash中使用时区转换日期

维多利亚:

我需要将日期格式为“ yyyy / mm / dd hh:mm:ss TZ”的字符串转换为UNIX时间(TZ =时区)。

到目前为止,我所做的是通过使用以下命令将日期格式转换为“ yyyy / mm / dd hh:mm:ss”(不带时区)

dateYMD="2019/2/28 12:23:11.46"
newt=$(date -d "${dateYMD}" +"%s")
echo ${newt}

我得到以下结果。

1551349391

我的工作是寻找时区和日期/时间都可以如何转换为时间戳(unix时间)。例如,我需要4个变量,它们的日期/时间与dateYMD相同,但是在4个不同的时区中,以便它们的时间戳不同。

这是我尝试过的最新

dateYMD="2017/09/09 08:58:09"
timez=$(TZ=Australia/Sydney date -d @$(date +%s -d "${dateYMD}"))
unixTimez=$( date --date "${timez}" +"%s" )
echo ${unixTimez}

告诉我以下错误

   date: invalid date ‘чт фев 28 21:23:11 AEDT 2019’
巴尔玛:

您不需要打date两次电话只需将其TZ设置为该变量所需的时区即可调用一次

timesydney=$(TZ=Australia/Sydney date -d "$dateYMD" +%s)
timenyc=$(TZ=US/Eastern date -d "$dateYMD" +%s)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章