Linux查看和修改时区

文章转载自:毛帅的博客 http://imshuai.com/change-linux-timezone/

对于部署在海外的Linux服务器来说,拿到的机器时区和本地并不一样,导致运行在上面的应用也面临时区问题。所以有必要修改系统本地时区。

1. 查看时区

查看当前生效的时区,可以简单的通过date命令查看当前时间:

[root@shuai01 zoneinfo]# date -R
Tue, 17 Jan 2017 21:36:23 +0800

最后的+0800,即东8区。

2. 设置时区

  1. 然并卵的tzselect命令
    看起来很像一个时区选择的工具,但并非如此。事实上tzselect仅仅是一个查看时区表示方式的『向导』程序而已。通过依次询问大洲→国家→城市,最后告诉你如何TZ变量的写法,比如北京时间是:Asia/Shanghai

  2. TZ变量
    可以通过修改TZ变量,直接修改时区信息,比如:

     [root@shuai01 ~]# date -R
     Tue, 17 Jan 2017 13:57:06 +0000
     [root@shuai01 ~]# export  TZ='Asia/Shanghai'
     [root@shuai01 ~]# date -R
     Tue, 17 Jan 2017 19:57:18 +0600
    

    有Linux经验的小伙伴都知道,不写在文件里的设置更改很难生效一般是会话级的,重新登录会消失。所以,这样直接修改TZ的尿性绝对做不到持久化更改时区的。

    正确的方式是到/etc/profile里(或用户的.profile或.bashrc文件),直接export TZ变量为要更改的时区(时区的名字可以用tzselect向导来确定)

  3. /etc/localtime文件
    默认情况下情况下,TZ属性是空,这时候是靠/etc/localtime文件来确定的时区。而此文件通常又是一个到/usr/share/zoneinfo/下各种时区文件的软连接。通过修改/etc/localtime指向的软连接,进而修改系统的时区。比如下面的方法,将localtime文件设置为了北京时间:

     ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    

3. 总结

  1. tzselect命令无法修改时区,仅给出时区的城市表示法
  2. TZ变量和/etc/localtime文件会影响时区,并建议直接修改/etc/localtime文件。
  3. 如果在shell中临时需要变更时区信息,可以修改TZ变量实现。
  4. profile文件里设置变量TZ,达到和修改/etc/localtime类似的效果。

 

<think>好的,用户想知道如何在Linux系统中修改时间时区。我需要根据提供的引用资料来整理答案。首先,引用[1]提到使用timedatectl set-timezone来修改时区,比如设置为Asia/Kolkata。引用[2]指出Fedora、RHEL等系统的方法相同,推荐使用这个方法。引用[3]提到了时区定义的简短形式,比如UTC±n,并指出如何更改时区。引用[4]中的date_default_timezone_set可能与PHP设置时区相关,但用户的问题是关于系统层面的设置。引用[5]似乎与内存管理有关,可能不相关。 接下来需要分步骤说明修改时间时区的方法。修改时区方面,主要使用timedatectl命令,或者手动创建符号链接到/etc/localtime。时间设置方面,timedatectl可以启用NTP自动同步,或者手动设置时间。需要确保引用正确,比如引用[1]、[2]、[3]适用于时区设置,而引用[4]可能不适用。需要检查是否需要提到其他方法,但用户提供的引用中推荐的是timedatectl。同时,用户可能没有提到需要管理员权限,但实际使用时需要sudo。另外,验证设置后的时间及时区是否正确,可以列出步骤。 最后生成相关问题,可能涉及NTP配置、不同Linux发行版的差异、手动设置时间的具体命令、时区列表查看等。确保问题基于回答内容,并且覆盖用户可能的后续疑问。</think>### 如何在Linux系统中修改时间时区? #### 修改时区的方法 1. **使用`timedatectl`命令**(推荐方法) 通过以下命令查看当前时区修改: ```bash timedatectl list-timezones # 列出所有可用时区 sudo timedatectl set-timezone Asia/Shanghai # 示例:设置为上海时区 ``` 此方法适用于Fedora、RHEL、CentOS、Ubuntu等主流发行版[^2][^3]。 2. **手动创建符号链接** 若系统未安装`timedatectl`,可将时区文件链接到`/etc/localtime`: ```bash sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ``` #### 修改系统时间的方法 1. **启用NTP自动同步时间** ```bash sudo timedatectl set-ntp true # 启用网络时间协议(NTP) ``` 系统会自动从时间服务器同步时间[^1]。 2. **手动设置时间** 若需临时调整时间(关闭NTP后生效): ```bash sudo timedatectl set-ntp false # 关闭NTP sudo timedatectl set-time "2023-10-05 15:30:00" # 设置具体时间 ``` #### 验证修改结果 ```bash timedatectl # 查看当前时间、时区及NTP状态 ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值