jingke@ubuntu:~# date
Tue, 05 Nov 2019 21:08:31 -0500
实际是下午9点
第一步:执行tzselect
修改/etc/localtime文件
控制系统时区的文件是/etc/localtime。只要把这个文件复制成相应时区的文件,系统时区就改成相应的时间了。
时区信息在:/usr/share/zoneinfo里。比如需要把本机 时区改成Shanghai的时间:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
这两条指令都可以更改。
使用date查看时间
第二种修改方式 timedatectl
1.查看当前时间状态
查看当前时间状态 timedatectl status :
wxs@ubuntu:~/6-1/task4$ timedatectl status
Local time: Tue 2017-11-07 18:14:30 PST
Universal time: Wed 2017-11-08 02:14:30 UTC
RTC time: Wed 2017-11-08 02:14:29
Time zone: America/Los_Angeles (PST, -0800)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
系统显示的时间是错误的,错误原因也是显而易见的,使用的是America/Los_Angeles的时区。
因此只要修改时区就能保证时间的正确。
2.修改时区
所有的时区名称存储在/usr/share/zoneinfo文件中。
执行命令timedatectl set-timezone "Asia/Shanghai" 就可以将时区设为上海时区。
==== AUTHENTICATING FOR org.freedesktop.timedate1.set-timezone ===
Authentication is required to set the system timezone.
Authenticating as: wxs,,, (wxs)
Password:
==== AUTHENTICATION COMPLETE ===12345
重新查看当前时间状态 timedatectl status :
wxs@ubuntu:~/6-1/task4$ timedatectl status
Local time: Wed 2017-11-08 10:15:45 CST
Universal time: Wed 2017-11-08 02:15:45 UTC
RTC time: Wed 2017-11-08 02:15:45
Time zone: Asia/Shanghai (CST, +0800)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no12345678
此时时间已经正常了。
硬件时间,系统时间,时区#hwclock--hctosys,把硬件时间同步到系统时间,查看系统时区命令:date-R,第一种方法,将时区信息文件拷贝至/etc/localtime下。具体操作方式为cp/usr/share/zoneinfo/Asia/Shanghai/etc/localtime-R将上海时区拷贝至/etc下。第二种方法,执行命令tzselect,首先我们选择一个洲,本篇我们要选择Asia亚洲。查看系统硬件时间命令:hwclock-r。linux的系统时间有两个,一个为系统时间,也叫软件时间,一般情况下只改这个时间,系统重启后不生效,另外一个为BOIS时间,也叫硬件时间。如要彻底更改系统时间,则需要先更改软件时间,然后保存到BOIS时间。执行命令date-s来设置时间,然后执行命令hwclock-w保存软件时间至硬件时间。timedatectl(对于RHEL/CentOS7和基于Fedora21+的分布式系统来说,是一个新工具,它作为systemd系统和服务管理器的一部分,代替旧的传统的用在基于Linux分布式系统的sysvinit守护进程的date命令。)在CentOS7里面有一个命令timedatectl可以帮助我们修改服务器的时区。例如:我们需要设置成上海的时间区:"timedatectlset-timezoneAsia/Shanghai。"设置完时区后当然还可以设置NTP服务器的开启和关闭。开启NTP:"timedatectlset-ntpyes"。关闭NTP:"timedatectlset-ntpno"。当然timedatectl命令还可以设置日期与时间。设置日期:"timedatectlset-timeYYYY-MM-DD"。设置时间:"timedatectlset-timeHH:MM:SS"。由于世界各国家与地区经度不同,地方时也有所不同,因此会划分为不同的时区。正式的时区划分包括24个时区,每一时区由一个英文字母表示。每隔经度15°划分一个时区,有一个例外,每个时区有一条中央子午线,例如,GMT属于“z”区,因此其时间后通常添加后缀“Z”(口语中用后缀“Zulu”)。
如何计算区时,计算的区时=已知区时-(已知区时的时区-要计算区时的时区)。(注:东时区为正,西时区为负)下面举例加以说明:例1:已知东京(东九区)时间为5月1日12:00,求北京(东八区)的区时。北京时间=12:00-(9-8)=11:00,即北京时间为5月1日11:00。例2:已知北京时间为5月1日12:00,求伦敦(中时区)的区时。伦敦时间=12:00-(8-0)=4:00,即伦敦时间为5月1日4:00。例3:已知北京时间为5月1日12:00,求纽约(西五区)的区时。纽约时间=12:00-[8-(-5)]=-1:00+24:00-1天=23:00,即纽约时间为4月30日的23:00。(注:当算出的区时为负数时,应加上24:00,日期减一天,即从5月1日变为4月30日)例4:已知纽约时间为5月1日12:00,求东京的区时。东京时间=12:00-[(-5)-9]=26:00-24:00+1天=2:00),即东京时间为5月2日2:00)。(注:当算出的区时大于或等于24:00时,应减去24:00,日期加一天,即从5月1日变为5月2日)。判断新旧两天,要看两条线,一是人为日界线——180度国际日期变更线,二是自然分界线——当地时间为0点的地区经线。自西向东越过国际日期变更线,日期应减1天,比如你在国际日期变更线西侧,当地时间是20日的00:30,当你自西向东越过国际日期变更线后,你所在位置的当地时间是19日的00:30。如果是自东向西越过国际日期变更线,则应该加1天。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)