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

一、timedatectl

[root@Geeklp-Administrator ~]# timedatectlLocal time: 六 2017-12-16 19:49:53 CSTUniversal time: 六 2017-12-16 11:49:53 UTCRTC time: 六 2017-12-16 11:43:53Time zone: Asia/Shanghai (CST, +0800)NTP enabled: yes
NTP synchronized: noRTC in local TZ: noDST 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 CSTUniversal time: 六 2017-12-16 05:01:12 UTCRTC time: 六 2017-12-16 05:01:13Time zone: Asia/Shanghai (CST, +0800)NTP enabled: no
NTP synchronized: noRTC in local TZ: noDST 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 HKTUniversal time: 六 2017-12-16 08:43:12 UTCRTC time: 六 2017-12-16 08:43:11Time zone: Asia/Hong_Kong (HKT, +0800)NTP enabled: no
NTP synchronized: noRTC in local TZ: noDST 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 HKTUniversal time: 六 2017-12-16 08:46:15 UTCRTC time: 六 2017-12-16 08:46:15Time zone: Asia/Hong_Kong (HKT, +0800)NTP enabled: yes
NTP synchronized: noRTC in local TZ: noDST 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

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

  1. linux系统中防止系统时间,设置系统时间与在Linux中

    设置系统时间的GPS timestamp_t结构与GPS在Linux的设置系统时间与在Linux中 timestamp_t结构 大家好, 我想,一旦我得到一个succesfull GPS锁定(写代码A ...

  2. linux系统自动登出时间设置,ssh修改超时自动登出时间的方法

    前言 众所周知,当我们通过ssh远程登录到另一台服务器之后,如果长时间不做操作,那么会被服务器自动登出,并且会告诉你timed out waiting for input: auto-logout.如 ...

  3. linux shell 当前时间、过去、未来几天的时间设置

    linux shell 时间设置 文章目录 linux shell 时间设置 一.date 命令含义 二.date 使用命令 1.提取日期元素 1.年月日 2.时分秒 3.星期 4.时间戳 5.日历 ...

  4. hwclock设置日期_linux时间管理与配置date与hwclock命令

    简介: 古代计时方式 ●在远古时期,人类用来确定时间的方式是一些自然界"相对"亘古不变的周期.如地球的公转是为一年,月球的公转是为一月,地球的自转是为一天等,最早的计时可以追溯到公 ...

  5. Linux修改系统日期和时间

    1.进入root账户下. suroot 或 su root 修改系统日期与时间date -s "2022-01-23 10:25:25" [root@localhost ~]# d ...

  6. shell中的时间值提取(date)

    shell中的时间值提取(date) 方法1 # date +%F # date +%T # cat time.sh #!/bin/bashDATE=`date +%F | sed 's/-//g'` ...

  7. linux当前时间 按格式化,Linux下date命令,格式化输出,时间设置

    date命令的帮助信息 [root@localhost source]# date --help 用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] ...

  8. CentOS7时间设置问题

    本地安装一个VMWare player虚拟机客户端,并安装了Linux CentOS7 Basic Web Server系统,时区在安装时已经选择了Asia/Shanghai,但是安装完成后,时间和当 ...

  9. linux系统时钟使用utc,如何设置时间,时区和同步系统时钟使用timedatectl命令

    该timedatectl命令是RHEL / CentOS 7和Fedora 21+根据发行,这是作为systemd系统和服务经理,用于基于sysvinit的后台程序的Linux发行版使用旧的传统dat ...

最新文章

  1. Chromium之各国语言切换
  2. 2021中国大学排名发布:北京大学连续14年位居榜首
  3. 近似装箱问题(两种脱机算法实现)
  4. Java中complex怎么被调用_java中存在三种调用机制
  5. 电脑故障扫描修复软件_常见的电脑故障及处理方法,教你几招,不求人,自己也能修复...
  6. 英伟达推出新款“煤气灶”Titan RTX,售价近2万,并开源PhysX SDK
  7. 在ISA2006以SSL-TO-HTTP方式发布内部的WEB服务器(一)
  8. 【安卓8】文件的读写
  9. 牛客网—12.链表练习python解答
  10. 简明的wifi通信协议介绍
  11. Linux编译安装cmake源码
  12. 什么是游戏引擎,什么是虚幻引擎(Unreal Engin 4)?
  13. 2021.6.27-参加青少年人工智能编程水平测试C++四级(通过)
  14. 【What if 系列】拖住那架飞机!
  15. Win10下用Anaconda安装TensorFlow
  16. 华为LiteOS操作系统中的LOS_DL_LIST_ENTRY怎么理解?
  17. 简易记账开发笔记之GridLayout
  18. FFmpeg命令行转码
  19. 7.18 HTML每日作业
  20. 机器学习基本概念知识汇

热门文章

  1. pandas组队学习 task10-时间序列
  2. 2021-07-192021年硝化工艺试题及解析及硝化工艺作业考试题库
  3. 【SLAM】——DynaSLAM项目环境配置(超多坑)
  4. 微信小程序绘制二维码(附微信小程序开发学习手册)
  5. oracle的卸数报错原因,如何卸载掉报错后安装完成的“隐患oracle”软件
  6. Unity报错之 No Sprite Editor Window registered. Please download 2D Sprite package from Package Manager.
  7. 一种水下鱼类图像特征学习与目标识别框架
  8. 推荐一个关于软件测试的公众号:火烈鸟测试
  9. MySQL数据库实验二 MySQL数据库和表
  10. 隔空看脸网恋照妖镜源码使用方法.可拍照,可录视频,PHP开发