有没有办法在linux shell脚本中从GMT获取给定时区(如EDT或America / New_York这样的标识符)的偏移量?
答案 0 :(得分:16)
导出您的TZ环境变量并使用%z打印日期以用于时区偏移。
#!/bin/sh
export TZ=":Pacific/Auckland"
date +%z
答案 1 :(得分:4)
这是一种迂回的方式,但它有效(loosely based on this):
#!/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)}'
将其另存为tzoffset
,将其设为可执行文件,并按以下方式运行:
tzoffset PST
此脚本的当前形式仅处理缩写时区。