Linux(RHEL7及CentOS7)的时间设置篇(timedatectl,date,hwclock)-系统管理(2)

RHEL7、CentOS7提供三种命令行方式方式来设置和显示日期、时间。timedatectl是在RHEL7及CentOS7中新增的systemd的一部分,date是传统的日期时间设置命令,hwclock单元访问的是硬件时钟。

一、timedatectl

[root@Geeklp-Administrator ~]# timedatectl
      Local time: 六 2017-12-16 19:49:53 CST
  Universal time: 六 2017-12-16 11:49:53 UTC
        RTC time: 六 2017-12-16 11:43:53
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

默认是开启你ntp时间同步的,在修改NTP或chrony的时间设置之后不会立即生效,需要重启timedatectl服务。

[root@Geeklp-Administrator ~]# systemctl restart systemd-timedated.service

(1)修改当前时间 timedatectl set-time HH:MM:SS 这个命令同时更新系统时间和硬件时钟,结果类似于date –set 和 hwclock –systohc 命令。开启NTP时间同步是不能用这个命令来设置时间,这一点需要注意一下。

[root@Geeklp-Administrator ~]# timedatectl set-time 13:00:27
Failed to set time: Automatic time synchronization is enabled
[root@Geeklp-Administrator ~]# timedatectl set-ntp no
[root@Geeklp-Administrator ~]# timedatectl set-time 13:00:27
[root@Geeklp-Administrator ~]# timedatectl 
      Local time: 六 2017-12-16 13:01:12 CST
  Universal time: 六 2017-12-16 05:01:12 UTC
        RTC time: 六 2017-12-16 05:01:13
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

系统默认的时间设置使用的UTC,设置系统时间使用本地时间。

timedatectl set-local-rtc boolean

boolean值为:yes (或者y, true, t, 1)。当boolean值为no时使用的是UTC时间,此时的值为:no(或者n, false, f, 0),默认值为no。

[root@Geeklp-Administrator ~]# timedatectl set-local-rtc no

如果设置为yes的话可能会有警告,此处不建议修改为yes。 (2)修改或设置时区。 列举出所有可用的时区,键入以下命令即可。当然也可以输入tzselect根据引导进行设置(推荐)。

timedatectl list-timezones

在root用户下键入以下命令来修改当前使用的区时。例如我们将区时改为中国香港。

[root@Geeklp-Administrator ~]# timedatectl set-timezone Asia/Hong_Kong
[root@Geeklp-Administrator ~]# timedatectl 
      Local time: 六 2017-12-16 16:43:12 HKT
  Universal time: 六 2017-12-16 08:43:12 UTC
        RTC time: 六 2017-12-16 08:43:11
       Time zone: Asia/Hong_Kong (HKT, +0800)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

(3)如果使用远程的NTP时间服务器来提供时间的话,需要使用timedatectl设置将NTP时间同步开启。

[root@Geeklp-Administrator ~]# timedatectl set-ntp yes
[root@Geeklp-Administrator ~]# timedatectl 
      Local time: 六 2017-12-16 16:46:15 HKT
  Universal time: 六 2017-12-16 08:46:15 UTC
        RTC time: 六 2017-12-16 08:46:15
       Time zone: Asia/Hong_Kong (HKT, +0800)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

二、date

(1)显示当前日期和时间

[root@Geeklp-Administrator ~]# date
2017年 12月 18日 星期一 15:45:10 CST

(2)默认情况下,date显示的是本地时间。如果需要显示UTC时间,键入以下命令:

[root@Geeklp-Administrator ~]# date --utc
2017年 12月 18日 星期一 07:32:43 UTC

(3)我们也可以通过+format来控制显示信息。

[root@Geeklp-Administrator ~]# date +"%H"
16
[root@Geeklp-Administrator ~]# date +"%M"
23
[root@Geeklp-Administrator ~]# date +"%D"
12/18/17
[root@Geeklp-Administrator ~]# date +"%Y"
2017
[root@Geeklp-Administrator ~]# date +"%F"
2017-12-18
[root@Geeklp-Administrator ~]# date +"%T"
16:23:31
[root@Geeklp-Administrator ~]# date +"%d"
18
[root@Geeklp-Administrator ~]# date +"%Y-%m-%d %H:%M"
2017-12-18 16:26

部分可用选项详见下表:

控制符

描述

%H

小时(for example, 17).

%M

分钟 (for example, 30).

%S

秒(for example, 24).

%d

月份中的某一天(for example, 16).

%m

月份中的某一个月(for example, 09).

%Y

年份 (for example, 2016).

%F

完整的日期格式 (for example, 2016-09-16). 这个选项相当于: %Y-%m-%d.

%T

完整的时间格式 (for example, 17:30:24). 这个选项相当于%H:%M:%S

(4)通过date命令来修改当前时间。可用date –set或date -s命令。可用选项–utc或-u来指定是否为UTC时间。

[root@Geeklp-Administrator ~]# date --set 12:43:23
2017年 12月 18日 星期一 12:43:23 CST
[root@Geeklp-Administrator ~]# date --set 2017-12-19
2017年 12月 19日 星期二 00:00:00 CST
[root@Geeklp-Administrator ~]# date --set '2017-12-17 12:43:23'
2017年 12月 17日 星期日 12:43:23 CST
[root@Geeklp-Administrator ~]# date --set '2017-12-17 12:43:23' -u
2017年 12月 17日 星期日 12:43:23 UTC
[root@Geeklp-Administrator ~]# date --set '2017-12-17 12:43:23' --utc
2017年 12月 17日 星期日 12:43:23 UTC
[root@Geeklp-Administrator ~]# date --s '2017-12-17 12:43:23' --utc
2017年 12月 17日 星期日 12:43:23 UTC
[root@Geeklp-Administrator ~]# date -s '2017-12-17 12:43:23' --utc
2017年 12月 17日 星期日 12:43:23 UTC

需要注意的是:设置完整的日期时间时需要使用引号。

三、hwclock

硬件时钟,顾名思义,这个时间时存储在服务器主板上的时钟。硬件时钟存储的值包括:年、月、日、时、分、秒。不存储时间标准、本地时间、UTC、DST。这些设置存放在/etc/adjtime中,当我们修改时间设置(包括手动设置和自动同步)时该文件被创建。在RHEL6或CentOS6系统中,系统每次关机或重启都会自动执行这个命令。在RHEL7或CentOS7中,当系统时间向NTP服务器或PTP服务器同步时间后,每隔11分钟内核自动同步硬件时钟到系统时钟。 (1)显示硬件时钟。

[root@Geeklp-Administrator ~]# hwclock 
2017年12月18日 星期一 16时39分40秒  -0.110050 秒
[root@Geeklp-Administrator ~]# hwclock --show
2017年12月18日 星期一 16时39分57秒  -0.293885 秒

(2)将硬件时钟同步给系统时钟。

[root@Geeklp-Administrator ~]# hwclock -s
[root@Geeklp-Administrator ~]# hwclock --hctosys
[root@Geeklp-Administrator ~]# hwclock 
2017年12月18日 星期一 17时17分39秒  -0.953704 秒

-s和–hctosys效果是一样的。 (3)将系统时间写入硬件时钟。

[root@Geeklp-Administrator ~]# hwclock -w
[root@Geeklp-Administrator ~]# hwclock 
2017年12月18日 星期一 17时02分16秒  -0.646804 秒
[root@Geeklp-Administrator ~]# hwclock --systohc
[root@Geeklp-Administrator ~]# date
2017年 12月 18日 星期一 17:14:08 CST
[root@Geeklp-Administrator ~]# hwclock 
2017年12月18日 星期一 17时14分17秒  -0.285800 秒

(4)手动设置硬件时钟。使用命令:hwclock –set –date 。

[root@Geeklp-Administrator ~]# hwclock -s --date "12 oct 2013 13:01"
[root@Geeklp-Administrator ~]# hwclock 
2017年12月18日 星期一 17时09分37秒  -0.047061 秒
[root@Geeklp-Administrator ~]# date
2017年 12月 18日 星期一 17:09:44 CST
[root@Geeklp-Administrator ~]# hwclock --set --date "2015-11-23 21:17:23" --utc
[root@Geeklp-Administrator ~]# hwclock 
2015年11月23日 星期一 21时18分53秒  -0.208850 秒
[root@Geeklp-Administrator ~]# date 
2017年 12月 18日 星期一 17:12:54 CST

四、关于时区

1、UTC: Universal Time Coordinated 协调世界时,又称世界标准时间。多数的两地时间表都以GMT来表示,但也有些两地时间表上看不到GMT字样,出现的反而是UTC这3个英文字母,究竟何谓UTC?事实上,UTC指的是Coordinated Universal Time– 世界协调时间(又称世界标准时间、世界统一时间),是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间,计算过程相当严谨精密,因此若以「世界标准时间」的角度来说,UTC比GMT来得更加精准。其误差值必须保持在0.9秒以内,若大于0.9秒则由位于巴黎的国际地球自转事务中央局发布闰秒,使UTC与地球自转周期一致。所以基本上UTC的本质强调的是比GMT更为精确的世界时间标准,不过对于现行表款来说,GMT与UTC的功能与精确度是没有差别的。 2、GMT: Greenwich Mean Time 格林尼治平均时 UTC和GMT都与英国伦敦的本地时相同,所以程序中UTC与GMT没什么不同。意思UTC=GMT是相等的 十七世纪,格林威治皇家天文台为了海上霸权的扩张计画而进行天体观测。1675年旧皇家观测所(Old Royal Observatory) 正式成立,到了1884年决定以通过格林威治的子午线作为划分地球东西两半球的经度零度。观测所门口墙上有一个标志24小时的时钟,显示当下的时间,对全球而言,这里所设定的时间是世界时间参考点,全球都以格林威治的时间作为标准来设定时间,这就是我们耳熟能详的「格林威治标准时间」(Greenwich Mean Time,简称G.M.T.)的由来,标示在手表上,则代表此表具有两地时间功能,也就是同时可以显示原居地和另一个国度的时间。 3、Unix时间戳: 在计算机中看到的UTC时间都是从(1970年01月01日 0:00:00)开始计算秒数的。所看到的UTC时间那就是从1970年这个时间点起到具体时间共有多少秒。 这个秒数就是Unix时间戳。 4、CST时间: CST却同时可以代表如下 4 个不同的时区: Central Standard Time (USA) UT-6:00 Central Standard Time (Australia) UT+9:30 China Standard Time UT+8:00 Cuba Standard Time UT-4:00 5、CET (英語:Central European Time,CET)欧洲中部时间是比世界标准时间(UTC)早一个小时的时区名称之一。它被大部分欧洲国家和部分北非国家采用。冬季时间为UTC+1,夏季欧洲夏令时为UTC+2。 6、DST: Daylight Saving Time「夏日节约时间」 是指在夏天太阳升起的比较早时,将时钟拨快一小时,以提早日光的使用,在英国则称为夏令时间(Summer Time)。这个构想于1784年由美国班杰明·富兰克林提出来,1915年德国成为第一个正式实施夏令日光节约时间的国家,以削减灯光照明和耗电开支。自此以后,全球以欧洲和北美为主的约70个国家都引用这个做法。目前被划分成两个时区的印度也正在商讨是否全国该统一实行夏令日光节约时间。欧洲手机上也有很多GSM系统的基地台,除了会传送当地时间外也包括夏令日光节约时间,做为手机的时间标准,使用者可以自行决定要开启或关闭。值得注意的是,某些国家有实施「夏日节约时间」的制度,出国时别忘了跟随当地习惯在表上调整一下,这可是机械表没有的功能设计哦! 7、关系: UTC=GMT CET=UTC/GMT + 1小时 CST=UTC/GMT +8 小时 CST=CET+9 参考资料: http://www.jinbuguo.com/systemd/timedatectl.html#list-timezones https://www.cnblogs.com/zhi-leaf/p/6282301.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

极客DIY:手机文件直传U盘,三步教你做一根OTG传输线

FreeBuf科普 OTG,即On-The-Go,该技术就是实现在没有电脑的情况下,实现从设备间的数据传送。例如数码相机直接连接到打印机上,通过OTG技术,连接...

21350
来自专栏喵了个咪的博客空间

[喵咪软件推荐(2)]全球服务器测速工具speedtest-cli

[喵咪软件推荐(2)]全球服务器测速工具speedtest-cli w-blog博客 ? 前言 在上一篇章中给大家介绍了全球国家信息国旗区号等一些全球国家新的库...

1.1K70
来自专栏Python中文社区

怎样用Python实现地理编码

怎样用Python实现地理编码 专栏作者:时空Drei ❈ 时空Drei,德国德累斯顿工业大学在读博士生,个人的擅长领域为:利用Python进行空间数据(遥感G...

46670
来自专栏简书专栏

Python数据持久化-csv、excel篇

2018年7月4日笔记 学习目标: 1.会使用Python第三方模块操作CSV文件 2.会使用Python第三方模块操作EXCEL文件

20220
来自专栏施炯的IoT开发专栏

Windows 8.1 低功耗蓝牙开发

1. 概述 在蓝牙4.0发布以前,给大家的直观印象就是蓝牙耳机,它就是用来满足短距离内中等带宽的音频通信需求。然而蓝牙4.0发布之后,用途就大不一样了,特别是现...

33550
来自专栏智能大石头

开发板通用刷机教程

    这是STM通用的刷固件方法,不仅仅适用于.Net Micro Framework,支持我们当前所有板子,包括阿波罗、探索者和雅典娜三个系列。     ...

53260
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–现金管理(160)-14银企对账-客户收款-承兑汇票-F-36收到承兑汇票

4.5.2 F-36收到银行承兑汇票 收到客户银行承兑汇票支付应收账款,形成财务记账如下: 借:应收票据 贷:应收账款 ? 输入凭证日期、参照、抬头文本 回...

32980
来自专栏FreeBuf

新年伊始,Java惊爆首个0day

日前,Java又爆了一个新的0day,可能让攻击者获取计算机管理权限,Java 7 Update 10或更早的版本中存在该漏洞,该漏洞可以允许未经身份验证的远程...

21260
来自专栏小文博客

良心压缩软件Bandizip——无广告超精简

Bandizip 是一款来自韩国的开发商 Bandisoft 开发的 Windows 平台压缩软件,是一款完全免费的压缩软件。

884100
来自专栏极乐技术社区

小程序音频API踩坑手册

84930

扫码关注云+社区

领取腾讯云代金券