Shell

如何發現目前時區(FreeNAS shell)?

  • February 16, 2014

如何找到目前對我的系統有效的時區並抵消它?

我需要這些資訊來抵消一些時間計算,並且由於夏令時(這有效地改變了偏移量),我無法使其保持不變。

例如,目前我的時區偏移量為 +02:00,冬季為 +01:00。我需要得到它是哪一個並以小時為單位進行偏移(例如,在這種情況下答案應該是 2)。

我需要在 tcsh 或 bash 中執行此操作。

從命令行看,似乎沒有設置時區(日期“+%z”返回 0)。但是,從 Web 界面時區設置為歐洲/薩格勒布。我想抵消那個時區。

FreeNAS 的版本是 0.7 RC1。

$ date "+%Z"

會給你目前時區

$ date "+%z"

將給出 DST 的偏移量

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

引用自:https://serverfault.com/questions/56908