1. linux系统如何更改时间时区
对于许多与系统相关的任务和进程,使用正确的时区是必不可少的。例如,cron守护进程使用系统的时区执行cron作业,日志文件中的时间戳基于同一系统的时区。
环境
Centos 8
检查现在的时区
timedatectl是一个 命令 行实用程序,允许您查看和更改系统的时间和日期。
[root@localhost ~]# timedatectl
Local time: Tue 2020-03-31 16:35:23 CST
Universal time: Tue 2020-03-31 08:35:23 UTC
RTC time: Tue 2020-03-31 08:35:23
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
更改时区
在更改时区之前,您需要找出要使用的时区名称。要列出所有可用时区,请使用下面的 命令 :
[root@localhost ~]# timedatectl list-timezones
…
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
…
然后使用set-timezone选项更改时区,比如更改为Europe/Berlin:
[root@localhost ~]# timedatectl set-timezone Europe/Berlin
使用创建链接的方式更改时区
如果运行的是旧版本的Centos,比如Centos6之前的版本,并且系统上不存在timedatectl命令,则可以通过将/etc/localtime符号链接到/usr/share/zoneinfo目录中的时区文件来更改时区。
查看一下/usr/share/zoninfo下面的时区文件,
[root@localhost ~]# ls /usr/share/zoneinfo/
[root@localhost ~]# ls /usr/share/zoneinfo/Asia/
现在替换时区文件。
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@localhost ~]# date
Tue Mar 31 16:53:59 CST 2020
可以看到已经切换到了CST中国标准时间
总结
在本文中,使用了两种方式修改时区。一种是使用timedatectl,另一种方式使用创建链接的方式。
2. Linux查看与修改时区、时间的命令
linux查看与修改时区、时间的命令1、查看、修改linux时区与时间一、linux时区的查看与修改1,查看当前时区date
-R2,修改设置时区方法1:tzselect方法2:仅限于RedHat
linux
和
CentOStimeconfig方法3:适用于Debiandpkg-reconfigure
tzdata3,复制相应的时区文件,替换系统时区文件;或者创建链接文件cp
/usr/share/zoneinfo/$主时区/$次时区
/etc/localtime在中国可以使用:cp
/usr/share/zoneinfo/Asia/Shanghai
/etc/localtime二、linux时间的查看与修改1、查看时间和日期date2、设置时间和日期将系统日期设定成1996年6月10日的命令date
-s
06/22/96将系统时间设定成下午1点52分0秒的命令date
-s
13:52:003.
将当前时间和日期写入BIOS,避免重启后失效hwclock
-w三、定时同步时间*
*
*
*
*
/usr/sbin/ntpdate
210.72.145.44
>
/dev/null
2>&1linux中用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。查看linux系统时间:date修改linux系统时间:date
-s
(后面跟时间)查看linux硬件时间:Java代码
hwclock
#或
clock
#或
hwclock
–show
#或
clock
–show
修改linux硬件时间:C代码
hwclock
–set
–date
#或
clock
–set
–date
让系统时间与硬件时钟同步,用:C代码
hwclock
–hctosys
#或
clock
–hctosys
相反地,让硬件时钟与系统时间同步:C代码
hwclock
–systohc
#或
clock
–systohc
让系统时间每隔十分钟去同步一下硬件时间。C代码
[hqw@localhost
root]$
vi
/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
#
run-parts
01
*
*
*
*
root
run-parts
/etc/cron.hourly
02
4
*
*
*
root
run-parts
/etc/cron.daily
22
4
*
*
0
root
run-parts
/etc/cron.weekly
42
4
1
*
*
root
run-parts
/etc/cron.monthly
*/10
*
*
*
*
root
hwclock
--hctosys
#加入此行,每隔10分钟执行一次hwclock
--hctosys
3. linux系统下,php设置时区和调用时间函数问题,服务器是nginx.
date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' 亚洲/上海
date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'为“亚洲/重庆”
date_default_timezone_set('PRC');//其中PRC为“中华人民共和国”
是区分大小写的,还需要php中关闭安全模式,或允许date_default_timezone_set执行
4. 如何将linux 的本地时间设置为utc时间
如果你的 Linux 系统时区配置不正确,必需要手动调整到正确的当地时区。NTP 对时间的同步处理只计算当地时间与 UTC 时间的偏移量,因此配置一个 NTP 对时间进行同步并不能解决时区不正确的问题。所以大家在用了国外云计算服务商如 Microsoft Azure 或其它 VPS、虚拟机时,需要注意是否与中国大陆的时区一致。
查看Linux当前时区
你可以使用如下命令非常容易地就查看到 linux 系统的当前时区:
date
ls -l /etc/localtime
linux-time02
获取时区TZ值
要更改 Linux 系统时区首先得获知你所当地时区的 TZ 值,使用 tzselect 命令即可查看并选择已安装的时区文件。
执行 tzselect 命令
linux-time03
通过向导选择你所在大洲、国家和城市
tzselect 最终将以 Posix TZ 格式(例如 Asia/Shanghai)输出你所在的时区值,将此记录下来。
linux-time03
更改每个用户的时区
Linux 用户一个多用户系统,每个用户都可以配置自己所需的时区,你可以为自己新增一个 TZ 环境变量:
export TZ='Asia/Shanghai'
执行完成之后需要重新登录系统或刷新 ~/.bashrc 生效。
source ~/.bashrc
更改Linux系统时区
要更改 Linux 系统整个系统范围的时区可以使用如下命令:
sudo rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
注意:/usr/share/zoneinfo/Asia/Shanghai 中的具体时区请用自己获取到的 TZ 值进行替换。
使用Systemd更改Linux系统时区
如果你使用的 Linux 系统使用 Systemd,还可以使用 timedatectl 命令来更改 Linux 系统范围的时区。在 Systemd 下有一个名为 systemd-timedated 的系统服务负责调整系统时钟和时区,我们可以使用 timedatectl 命令对此系统服务进行配置。
sudo timedatectl set-timezone 'Asia/Shanghai'
linux-time05
最后,如果你发现 Ubuntu 与 Windows 双系统时间不同步,可以参考我们之前的文章说明和解决办法。
5. linux下如何修改时区(TIMEZONE)
查看时区
cat /etc/sysconfig/clock
设置时区
tzselect
timeconfig
cat /etc/sysconfig/clock ZONE=”Asia/Shanghai” —> /usr/share/zoneinfo 下面的文件。 UTC=false —> 硬件时钟是否为 UTC 或者说 GMT 时钟。 ARC=false —> 如果是在 Alpha 机器上,则设置为 true 。
把硬件时钟设置为 UTC 的好处就是他能自动设置夏时制,缺点是,在安装有多重操作系统启动的机器上,在另外的操作 系统上时钟会错误。
Linux 的时钟设置文件为:/etc/localtime ,实际上这个文件是 /usr/share/zoneinfo 目录下对应文件的符号连接。 假设我们所处的地区位于上海,那么只要运行以下的命令就可以设置时区了。
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Linux 启动时,其中的一个脚本(/etc/rc.d/rc.sysinit)会运行 /sbin/hwclock 程序,把当前的硬件时钟复制为系统 时间。hwclock 假定硬件时钟已经设置为本地时钟,除非带有 –utc 参数。脚本文件会读取 /etc/sysconfig/clock 文 件的设置,因此我们不需要修改脚本,直接修改这个配置文件就可以了,根据需要把其中的 UTC 行,设置为 true 或 者 false。
设置硬件时钟时,首先使用 date 命令(“date MMDDhhmmYYYY.ss”) 设置好系统时钟,然后使用 “/sbin/hwclock –systohc” 把硬件时钟设置为和当前系统时间一致。
如果你在某些应用下面的时间是错误的,那么你在运行 Red Hat Linux 5.0 或 5.1,解决的办法是建立 /usr/lib/zoneinfo 到 /usr/share/zoneinfo 的符号连接:
ln -s /usr/share/zoneinfo /usr/lib/zoneinfo
小结:时钟设置的问题本身比较简单,但是它涉及到几个基本的配置文件:
/etc/rc.d/rc.sysinit /etc/sysconfig/clock /etc/localtime /usr/share/zoneinfo时区的配置文件是/etc/sysconfig/clock。用tzselect命令就可以修改这个配置文件,根据命令的提示进行修改就好了。 但是在实际工作中,发现这种方式是不能够使得服务器上的时间设置马上生效的,而且使用ntpdate去同步时间服务器也不能够更改时间。即使你使用了date命令手工设置了时间的话,如果使用ntpdate去进行时间同步的话,时间又会被改动到原来的错误时区的时间。而生产的机器往往是非常重要的,不能够进行重启等操作。 在网上找了几种方法试了下,发现如果要修改时区并且马上生效,可以更换/etc/localtime 文件来实现。比如我的时区是中国上海,那么就可以使用如下的命令来使得时区的更改生效。 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 然后最好使用下面的命令将更改写入bios。