Linux/UNIX:基于每个用户设置时区

时间:2020-01-09 10:40:28  来源:igfitidea点击:

我们正在开发基于Linux的应用程序,我们希望为每个用户设置每个用户的时区。
我如何配置Fedora Linux或oses之类的Unix以使用bash shell在每个用户的基础上设置时区?
时区是地球上采用相同标准时间(通常称为本地时间)的区域。
大多数相邻时区恰好相隔一小时,并且按照惯例,将其本地时间计算为与格林威治标准时间的偏差。

您可以使用此方法在系统范围内设置时区。
但是,请按照以下说明为每个用户设置时区。

大多数基于Unix的系统,包括Linux和Mac OS X,都将系统时间设置为UTC。
不同于为整个计算机设置一个时区,时区偏移量可能因不同进程而异。
标准库例程用于根据当前时区计算本地时间,通常通过TZ环境变量提供给进程。
这允许多个时区的用户使用同一台计算机,并且各自的本地时间正确显示给每个用户。
时区信息通常存储在称为zoneinfo的时区数据库中

该过程按每个用户设置时区

使用诸如之类的文本编辑器打开用户~/.bashrc或~/.bash_profile文件,并设置TZ环境变量。
如下追加或设置TZ:

export TZ="/usr/share/zoneinfo/{TIMEZONE-DIRECTORY}/{TIMEZONE_FILE}"

如果您的用户名是Hyman,并且您想将TZ设置为Asia/Shanghai,请输入以下命令:

$ vi /home/Hyman/.bashrc

或者

$ vi ~/.bashrc

追加以下行:

export TZ="/usr/share/zoneinfo/Asia/Shanghai"

保存并关闭文件。
您也可以在bash shell提示符下执行相同的命令:

export TZ="/usr/share/zoneinfo/Asia/Shanghai"