Shell

如何使用 korn shell 將時間從本地時區轉換為悉尼時區?

  • October 31, 2014

我需要將時間從本地時區 (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”嘗試了這個並且它起作用了。我試圖用“Australia/Sydney”替換“AEDT”(我在 /usr/share/zoneinfos 中找到它),但結果是一樣的。

我會很感激任何建議,我正在使用 korn shell。謝謝。

如果要將本地時區的隨機時間轉換為另一個時區的時間:

$ 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 時代以來的秒數作為交流時間點的自然方式。

使用幾種腳本語言:

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

引用自:https://unix.stackexchange.com/questions/165230