1 date简介
在linux 中date命令有很多用法,本文简单介绍一下 -d 参数的用法。
date -d //显示字符串所指的日期与时间。字符串前后必须加上双引号。 例如: date -d “-1day” //前一天 date -d “1day” //后一天 复制代码
指定日期的显示格式:
date <+时间日期格式> 例如: [root@yuji ~]# date +"%Y-%m-%d" 2022-05-01 [root@yuji ~]# date +"%Y%m%d" 20220501 复制代码
日期格式:
| 格式 | 作用 |
| %Y | 完整年份 (0000~9999) |
| %y | 年份的最后两位数字 (00~99) |
| %m | 月份 (01~12) |
| %d | 日 (01~31) |
| %W | 一年中的第几周 (00~53) (以 Monday 作为一周的第一天) |
| %U | 一年中的第几周 (00~53) (以 Sunday 作为一周的第一天) |
| %w | 一周中的第几天 (0~6) |
| %D | 直接显示日期 (mm/dd/yy) |
| %x | 直接显示日期 (mm/dd/yy) |
| %B | 月份 (January~December) |
| %b | 月份 (Jan~Dec) |
| %A | 星期几 (Sunday~Saturday) |
| %a | 星期几 (Sun~Sat) |
| %F | 直接显示日期,相当于"%Y-%m-%d"(yyyy-mm-dd) |
时间格式:
| 格式 | 作用 |
| %H | 小时(00~23) |
| %M | 分钟(00~59) |
| %S | 秒(00~59) |
| %X | 相当于 %H:%M:%S |
| %T | 直接显示时间 (24 小时制) |
| %p | 显示本地 AM 或 PM |
| %Z | 显示时区 |
| %k | 小时(0~23) |
| %l | 小时(1~12) |
| %r | 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M) |
| %s | 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 |
2 获得某一天的时间:
示例1:
[root@yuji ~]# date 2022年 05月 01日 星期日 22:51:46 CST [root@yuji ~]# date +"%Y%m%d" 20220501 [root@yuji ~]# date -d "-1 day" +"%Y%m%d" 20220430 [root@yuji ~]# date -d "1 day" +"%Y%m%d" 20220502 复制代码
网络异常,图片无法展示
|
示例2:
[root@yuji ~]# date 2022年 05月 01日 星期日 20:55:14 CST [root@yuji ~]# date +"%Y%m%d" //当前日期 20220501 [root@yuji ~]# date +"%Y%m01" //本月第一天 20220501 #上个月最后一天(本月第一天减1天) [root@yuji ~]# date -d "$(date +"%Y%m01") -1day" +"%Y%m%d" 20220430 #上个月倒数第3天(本月第一天减3天) [root@yuji ~]# date -d "$(date +"%Y%m01") -3 day" +"%Y%m%d" 20220428 #下个月第一天 [root@yuji ~]# date -d "$(date -d "1 month" +"%Y%m01")" 2022年 06月 01日 星期三 00:00:00 CST [root@yuji ~]# date -d "$(date -d "1 month" +"%Y%m01")" +"%Y%m%d" 20220601 #本月最后一天(下个月第一天减1天) [root@yuji ~]# date -d "$(date -d "1 month" +"%Y%m01") -1 day" +"%Y%m%d" 20220531 复制代码
网络异常,图片无法展示
|
网络异常,图片无法展示
|
3 获得多少秒之前的时间:
[root@yuji ~]# date -d "2 day ago" +"%Y%m%d" //获得2天前的时间 20220429 [root@yuji ~]# date -d "10 day ago" +"%Y%m%d" //获得10天前的时间 20220421 [root@yuji ~]# date -d "10 second ago" +"%Y%m%d" //获得10秒前的时间 20220501 [root@yuji ~]# date -d "10 second ago" +"%Y%m%d %H:%M:%S" //获得10秒前的时间,显示具体的时分秒 20220501 22:08:39 复制代码
网络异常,图片无法展示
|
4 查看系统启动时间:
[root@yuji ~]# cat /proc/uptime 29602.31 29039.95 #第一列输出的是,系统启动到现在的时长(以秒为单位) #第二列输出的是,系统空闲的时长(以秒为单位) 复制代码
网络异常,图片无法展示
|
5 通过date命令计算出系统启动时间(本次系统开机时间):
[root@yuji ~]# cat /proc/uptime 31761.98 31117.16 [root@yuji ~]# awk -F. '{print $1}' /proc/uptime 31763 [root@yuji ~]# date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y%m%d %H:%M:%S" 20220501 13:59:21 复制代码
网络异常,图片无法展示
|