date:
- date是Linux里日期管理命令
UTC
协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC
GMT
即格林尼治 平太阳时间,是指格林尼治所在地的标准时间,也是表示地球自转速率的一种形式
CST
北京时间 (中国国家标准时间)
北京时间是中国采用国际时区东八时区的区时作为标准时间。
北京时间并不是北京(东经116.4°)的地方时间,而是东经120°的地方时间,故东经120度地方时比北京的地方时早约14分半钟。因为北京处于国际时区划分中的东八区,同格林尼治时间(世界时)整整相差8小时(即北京时间=世界时+8小时),故命名为“北京时间”。东八区包括的范围从东经112.5°到东经127.5°,以东经120°为中心线,东西各延伸7.5°,总宽度为15°的区域。
而中国幅员辽阔,东西相跨5个时区(即东五区、东六区、东七区、东八区、东九区5个时区)授时台必须建在地理中心地带,从而也就产生了长短波授。“北京时间”与“北京当地时间”是两个概念, “北京时间”的发播不在北京,而在陕西蒲城(处于东七区)
东八区
东八区(UTC/GMT+08:00)是比世界协调时间(UTC)/格林尼治时间(GMT)快8小时的时区,理论上的位置是位于东经112.5度至127.5度之间,是东盟标准的其中一个候选时区。当格林尼治标准时间为0:00时,东八区的标准时间为08:00
-d<字符串>:显示字符串所指的日期与时间,字符串前后必须加双引号
-s<字符串>:根据字符串来设置日期与时间,字符串前后必须加上双引号
-u:显示GMT(英国格林威治时间)
--help:在线帮助
-version:显示版本信息
查看当前系统时间
date
显示指定的字符串类型时间格式
date -d "2021-01-24 01:01:01"
根据字符串设置系统时间
date -s "2021-01-24 01:01:01"
所有date命令的方法
date --help
给定的格式FORMAT 控制着输出,解释序列如下:%% 一个文字的 %%a 当前locale 的星期名缩写(例如: 日,代表星期日)%A 当前locale 的星期名全称 (如:星期日)%b 当前locale 的月名缩写 (如:一,代表一月)%B 当前locale 的月名全称 (如:一月)%c 当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)%C 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)%d 按月计的日期(例如:01)%D 按月计的日期;等于%m/%d/%y%e 按月计的日期,添加空格,等于%_d%F 完整日期格式,等价于 %Y-%m-%d%g ISO-8601 格式年份的最后两位 (参见%G)%G ISO-8601 格式年份 (参见%V),一般只和 %V 结合使用%h 等于%b%H 小时(00-23)%I 小时(00-12)%j 按年计的日期(001-366)%k hour, space padded ( 0..23); same as %_H%l hour, space padded ( 1..12); same as %_I%m month (01..12)%M minute (00..59)%n 换行%N 纳秒(000000000-999999999)%p 当前locale 下的"上午"或者"下午",未知时输出为空%P 与%p 类似,但是输出小写字母%r 当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)%R 24 小时时间的时和分,等价于 %H:%M%s 自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数%S 秒(00-60)%t 输出制表符 Tab%T 时间,等于%H:%M:%S%u 星期,1 代表星期一%U 一年中的第几周,以周日为每星期第一天(00-53)%V ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)%w 一星期中的第几日(0-6),0 代表周一%W 一年中的第几周,以周一为每星期第一天(00-53)%x 当前locale 下的日期描述 (如:12/31/99)%X 当前locale 下的时间描述 (如:23:13:48)%y 年份最后两位数位 (00-99)%Y 年份%z +hhmm 数字时区(例如,-0400)%:z +hh:mm 数字时区(例如,-04:00)%::z +hh:mm:ss 数字时区(例如,-04:00:00)%:::z 数字时区带有必要的精度 (例如,-04,+05:30)%Z 按字母表排序的时区缩写 (例如,EDT)
timedatectl
- timedatectl是用于控制系统时间和日期。可以用来查询和更改系统时钟于设定,同时可以设定和修改时区信息。
- 在实际开发过程中,系统时间的显示会和实际出现不同步;我们一般为了校正服务器时间、时区的时候会使用timedatectl命令
- 使用者权限:所有使用者都可使用,设置时间需要管理员
显示系统的当前时间和日期
timedatectl status
或者
timedatectl
# 会分别显示时区、CST时间和UTC时间,其中,RTC time就是硬件时钟的时间,硬件时间默认为UTC。
查看所有可用的时区
timedatectl list-timezones
设置本地时区
timedatectl set-timezone "Asia/Shanghai"
- NTP即Network Time Protocol(网络时间协议),是一个互联网协议,用于同步计算机之间的系统时钟。timedatectl实用程序可以自动同步你的Linux系统时钟到使用NTP的远程服务器。
禁用时间同步
timedatectl set-ntp false
# 注意: 如果ntp时间同步为true时无法修改时间设定
启用时间同步
timedatectl set-ntp true
再执行
timedatectl set-time "2021-10-11 15:11:00"
设置时间
timedatectl set-time "2021-01-01 01:01:01"