Décalage d’un fuseau horaire donné de GMT dans le script shell Linux

Existe-t-il un moyen d’obtenir le décalage d’un fuseau horaire donné (identifiant comme EDT ou America / New_York) à partir de GMT dans le script shell Linux?

Exportez votre variable d’environnement TZ et la date d’impression avec% z pour le décalage de fuseau horaire.

#!/bin/sh export TZ=":Pacific/Auckland" date +%z 

C’est un moyen détourné de le faire mais ça marche ( vaguement basé sur ceci ):

 #!/bin/bash ZONE=$1 TIME=$(date +%s --utc -d "12:00:00 $ZONE") UTC_TIME=$(date +%s --utc -d "12:00:00") ((DIFF=UTC_TIME-TIME)) echo - | awk -v SECS=$DIFF '{printf "%d",SECS/(60*60)}' 

Enregistrez-le en tant que tzoffset , rendez-le exécutable et exécutez-le comme ceci:

 tzoffset PST 

Ce script dans sa forme actuelle ne gère que les fuseaux horaires abrégés.