Shell
如何發現目前時區(FreeNAS shell)?
如何找到目前對我的系統有效的時區並抵消它?
我需要這些資訊來抵消一些時間計算,並且由於夏令時(這有效地改變了偏移量),我無法使其保持不變。
例如,目前我的時區偏移量為 +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