9

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

4

2 回答 2

18

导出您的 TZ 环境变量并使用 %z 打印日期以获取时区偏移量。

#!/bin/sh
export TZ=":Pacific/Auckland"
date +%z
于 2010-05-13T01:59:44.060 回答
4

这是一种迂回的方式,但它有效(松散地基于此):

#!/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

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

于 2010-05-13T02:10:50.143 回答