Как я могу узнать, какой часовой пояс в настоящее время действует в моей системе, и получить смещение к нему?
Мне нужна эта информация, чтобы компенсировать некоторые вычисления времени, и я не могу сделать ее постоянной из-за перехода на летнее время (которое эффективно меняет смещение).
Например. В настоящее время смещение моего часового пояса составляет +02: 00, а зимой будет +01: 00. Мне нужно узнать, какой из них, и смещение в часах (например, в этом случае ответ должен быть 2).
Мне нужно было бы сделать это либо в tcsh, либо в bash.
Из командной строки похоже, что часовой пояс не установлен (дата "+% z" возвращает 0). Однако в веб-интерфейсе часовой пояс установлен на Europe / Zagreb. Я хотел бы сместить этот часовой пояс.
Версия FreeNAS - 0.7 RC1.
$ date "+%Z"
Даст вам текущий часовой пояс
$ date "+%z"
Даст смещение от летнего времени
get_current_timzone() {
CURRENT_TIMEZONE="$(md5 /etc/localtime | awk '{print $4}')"
find /usr/share/zoneinfo | while read LINE; do
FOUND_TIMEZONE="$(md5 ${LINE} | awk '{print $4}')"
if [ "${CURRENT_TIMEZONE}" == "${FOUND_TIMEZONE}" ]; then
echo ${LINE} | sed -E 's|/usr/share/zoneinfo/||'
fi
done
}
root@Host-10 [~]$ get_current_timzone
FreeNAS работает на FreeBSD, поэтому использование http://www.cyberciti.biz/faq/howto-set-date-and-time-timezone-in-freebsd/ как руководство:
Чтобы настроить правильный часовой пояс, вам необходимо скопировать файл часового пояса из каталога / usr / share / zoneinfo в файл / etc / localtime. Просто перейдите в каталог:
# cd /usr/share/zoneinfo
Используйте команду ls -l, чтобы узнать свой файл зоны.
# ls -l
Например, я нахожусь в Азии / Кулькатте (часовой пояс IST), поэтому мне нужно скопировать файл следующим образом:
# cp /usr/share/zoneinfo/Asia/Calcutta /etc/localtime