I need to convert time from localtimezone (CET/CEST) to Sydney timezone (AEDT/AEST). I tried something like this:

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

It doesn't work, it doesn't recognize "AEDT", however I tried this with "UTC" and it worked. I tried to replace "AEDT" with "Australia/Sydney" (I found it in /usr/share/zoneinfos), but result was the same.

I would appreciate any advices, I am using korn shell. Thanks.


If you want to convert a random time from the local timezone to a time in another timezone:

$ 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

I use seconds since the unix epoch as the natural way to communicate a point in time.


Using a couple of scripting languages:

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.