FreeBSD 设置时区

FreeBSD 设置时区

我如何才能找到我的系统上当前有效的时区并获取其偏移量?

我需要这些信息来偏移一些时间计算,并且由于夏令时(实际上改变了偏移量),我无法使其保持不变。

例如,目前我的时区偏移量为 +02:00,冬季时区偏移量为 +01:00。我需要获取时区偏移量(以小时为单位)(例如,在这种情况下答案应为 2)。

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

从命令行看来,时区未设置(日期“+%z”返回 0)。但是,从 Web 界面来看,时区设置为欧洲/萨格勒布。我希望获得该时区的偏移量。

FreeNAS 的版本是 0.7 RC1。

答案1

$ date "+%Z"

将为你提供当前时区

$ date "+%z"

将给出与 DST 的偏移量

答案2

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

答案3

FreeNAS 在 FreeBSD 上运行,因此使用http://www.cyberciti.biz/faq/howto-set-date-and-time-timezone-in-freebsd/作为指导:

FreeBSD 设置时区

要设置正确的时区,您需要将时区文件从 /usr/share/zoneinfo 目录复制到 /etc/localtime 文件。只需转到目录:

# cd /usr/share/zoneinfo

使用 ls -l 命令来找出您的区域文件。

# ls -l

例如我在亚洲/库尔卡塔(IST时区),所以我需要复制文件如下:

# cp /usr/share/zoneinfo/Asia/Calcutta /etc/localtime

相关内容