有没有办法在 linux shell 脚本中从 GMT 获取给定时区的偏移量(标识符如 EDT 或 America/New_York)?
问问题
17094 次
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 回答