Linux时间服务相关命令
更新于:2023年12月17日
Linux时间服务相关命令
目录
[toc]
1、显示与设定系统时钟:date命令
选项
date命令使用“+”来传递参数。
%A 显示周
%a 显示周(前3个字母,其缩写形式)
%B 显示月份(全格式)
%b 显示月份(简写)
%F 代表获取年月日
%Y表示年、%m表示月、%d表示天、
%H表示小时、%M表示分钟、%S表示秒;(%T==%H:%M:%S)
%s表示时间戳
%T 代表小时:分钟:秒
%y 代表年份最后2位数
1.显示系统时间
例子:显示系统时间:date;hwclock;clock
[root@gitlab-runner ~]#date
Wed May 18 07:23:01 CST 2022
[root@gitlab-runner ~]#hwclock
cWed 18 May 2022 07:23:04 AM CST -0.282491 seconds
[root@gitlab-runner ~]#clock
Wed 18 May 2022 07:23:05 AM CST -0.065940 seconds
例子:显示具体时间(常用) date +%F_%T
[root@hg-linux-test ~]# date +%F_%T
2023-12-17_21:52:55
[root@hg-linux-test ~]# date +%F_%H:%M:%S
2023-12-17_21:53:01
[root@docusaurus-wiki ~]# date +%F_%H-%M-%S
2024-03-24_05-16-37
例子:获取年月日:date +%Y-%m-%d 或者 date +%F
[root@hg-linux-test ~]# date +%F
2023-12-17
[root@hg-linux-test ~]# date +%Y-%m-%d
2023-12-17
##注意:%y 代表年份最后2位数
[root@hg-linux-test ~]# date +%y-%m-%d
23-12-17
例子:获取时间戳:date +%s
[root@gitlab-runner ~]#date +%s #%s表示时间戳
1652830295
[root@gitlab-runner ~]#date --date=20150820 +%s #获取2015/08/20 的时间戳。
1440000000
# %s表示linux时间戳的秒数。
# Unix时间戳(英文为Unixepoch, Unix time, POSIX time 或 Unix timestamp)
# 是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
例子:显示周几:date +%A ;date +%a
[root@gitlab-runner ~]#date +%A
Wednesday
[root@gitlab-runner ~]#date +%a
Wed
# 说明:
%A 显示周
%a 显示周(前3个字母,其缩写形式 )
例子:显示月份:date +%B;date +%b
[root@hg-linux-test ~]# date +%B
December
[root@hg-linux-test ~]# date +%b
Dec
# %B 显示月份(全格式)
# %b 显示月份(简写)
例子:显示昨天和明天
#当前日期:
[root@k8s-master ~]#date
Mon May 30 21:49:36 CST 2022
[root@k8s-master ~]#date -d yesterday
Sun May 29 21:51:58 CST 2022
[root@k8s-master ~]#date -d tomorrow
Tue May 31 21:52:03 CST 2022
或者:
[root@k8s-master ~]#date +%Y%m%d -d "-1 day"
20220529
[root@k8s-master ~]#date +%Y%m%d -d "+1 day"
20220531
例子:显示本月和下月
[root@k8s-master ~]#date +%Y%m%d -d "-1 month"
20220430
[root@k8s-master ~]#date +%Y%m%d -d "+1 month"
20220630
或者:
[root@k8s-master ~]#date +%Y%m%d --date="-1 month"
20220430
[root@k8s-master ~]#date +%Y%m%d --date="+1 month"
20220630
例子:shell脚本指定日期减去一天或几天
date -d参数可以根据当前日期获取更多我们需要的日期。
#如果只减去一天的话,直接写就可以了。
#date -d"yesterday 20150401" +%Y%m%d
[root@k8s-master ~]#date -d"yesterday 20150401" +%Y%m%d
20150331
#如果要减去几天,还可以这样写,如果用负数是往前数,
#date -d"10 day ago 2015-04-01" +%Y-%m-%d
[root@k8s-master ~]#date -d"10 day ago 2015-04-01" +%Y-%m-%d
2015-03-22
#在指定的日期上加上指定的小时
[dc@dc010.tj.momo.com init_env]$ date -d "20150416 12 3 hour" +"%Y%m%d%H"
2015041615
#在指定的日期上减去指定的小时
[dc@dc010.tj.momo.com init_env]$ date -d "20150416 12 -1 hour" +"%Y%m%d%H"
2015041611
#在指定的日期上加上指定的分钟
[dc@dc010.tj.momo.com init_env]$ date -d "20150416 12:20 10 minute" +"%Y%m%d%H%M"
201504161230
2.修改系统时间
例子:修改日期和时间
date -s '2015-04-11 13:15:15'
date命令修改完时间后,系统时间立即且永久生效,再次登录shell发现已经是修改后的时间了:
例子:修改日期
[root@localhost ~]# date -s 2015/08/23 #设置日期
Sun Aug 23 00:00:00 CST 2015
或者:
例子:修改时间
[root@localhost ~]# date -s 19:18:30 #设置时间
Sun Aug 9 19:18:30 CST 2015