Смещение указанного часового пояса от GMT в сценарии оболочки linux - PullRequest
9 голосов
/ 13 мая 2010

Есть ли способ получить смещение заданного часового пояса (идентификатор типа EDT или America / New_York) от GMT в сценарии оболочки linux?

Ответы [ 2 ]

16 голосов
/ 13 мая 2010

Экспорт переменной среды TZ и печать даты с% z для смещения часового пояса.

#!/bin/sh
export TZ=":Pacific/Auckland"
date +%z
4 голосов
/ 13 мая 2010

Это обходной способ сделать это, но он работает ( свободно на основе этого ):

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

Этот скрипт в его текущей форме обрабатывает только сокращенные часовые пояса.

...