Como converter o tempo do fuso horário local para o fuso horário de Sydney usando o shell korn?

2

Eu preciso converter o tempo do localtimeone (CET / CEST) para o fuso horário de Sydney (AEDT / AEST). Eu tentei algo assim:

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

Não funciona, não reconhece "AEDT", no entanto tentei isto com "UTC" e funcionou. Tentei substituir "AEDT" por "Australia / Sydney" (encontrei em / usr / share / zoneinfos), mas o resultado foi o mesmo.

Gostaria de receber alguns conselhos, estou usando o shell korn. Obrigado.

    
por Wlad 31.10.2014 / 13:36

2 respostas

1

Se você quiser converter uma hora aleatória do fuso horário local para uma hora em outro fuso horário:

$ 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

Eu uso segundos desde a época do unix como a maneira natural de comunicar um ponto no tempo.

    
por 31.10.2014 / 15:59
0

Usando algumas linguagens de script:

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
    
por 31.10.2014 / 16:49