在linux shell脚本中从GMT偏移给定时区

时间:2010-05-13 01:00:43

标签: linux timezone offset

有没有办法在linux shell脚本中从GMT获取给定时区(如EDT或America / New_York这样的标识符)的偏移量?

2 个答案:

答案 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

此脚本的当前形式仅处理缩写时区。