如何使用 korn shell 将时间从本地时区转换为悉尼时区?

如何使用 korn shell 将时间从本地时区转换为悉尼时区?

我需要将时间从本地时区 (CET/CEST) 转换为悉尼时区 (AEDT/AEST)。我尝试过这样的事情:

export date=$(date "+%Y-%m-%d %H:%M:%S AEDT")
date "+%Y-%m-%d %H:%M:%S %Z" -d "$date"

它不起作用,它无法识别“AEDT”,但是我用“UTC”尝试过,它起作用了。我尝试用“澳大利亚/悉尼”替换“AEDT”(我在 /usr/share/zoneinfos 中找到它),但结果是相同的。

我将不胜感激任何建议,我正在使用 korn shell。谢谢。

答案1

如果要将本地时区的随机时间转换为另一个时区的时间:

$ date -d @$(date +%s -d '2014/10/01 12:34:56')
Wed Oct  1 12:34:56 CEST 2014
$ TZ=Australia/Sydney date -d @$(date +%s -d '2014/10/01 12:34:56')
Wed Oct  1 20:34:56 EST 2014

我使用自 Unix 纪元以来的秒数作为传达时间点的自然方式。

答案2

使用几种脚本语言:

perl -MDateTime -E 'say DateTime->now(time_zone => "local")->set_time_zone("Australia/Sydney")->strftime("%F %T %Z")'

echo 'puts [clock format [clock seconds] -format {%Y-%m-%d %T %Z} -timezone ":Australia/Sydney"]' | tclsh

相关内容