shell:date 日期处理
- 操作系统
- 2024-12-03
- 411热度
- 0评论
https://zclhj.top/2022/08/15/linux%e5%91%bd%e4%bb%a4%ef%bc%9adate/
用途
用于显示或设置系统的时间与日期
语法格式
date[+指定的格式]
用法
查看系统当前时间
# 默认格式
[linuxprobe@linuxprobe ~]$ date
Tue Aug 16 05:40:32 CST 2022
# 按照 年-月-日 时:分:秒 的格式查看当前系统的时间日期
[linuxprobe@linuxprobe ~]$ date "+%Y-%m-%d %H:%M:%S"
2022-08-16 05:41:13
设置系统时间
# 将系统当前时间设置为 2022 年 08 月 15 号,22时
[linuxprobe@linuxprobe ~]$ date -s "20220815 22:00"
查看今天是当年中的第几天
[linuxprobe@linuxprobe ~]$ date "+%j"
228
获取年月日
# 获取年
year=$(date +%Y)
month=$(date +%m)
day=$(date +%d)
日期运算
# 获取昨天
date -d "-1 day" +%d
date -d "yesterday" +%d
date -d "last day" +%d
# 获取明天
date -d "+1 day" +%d
date -d "tomorrow" +%d
date -d "next day" +%d
# 获取一个月前
date -d "-1 month" +%m
date -d "last month" +%m
# 获取一年前
date -d "-1 year" +%Y
date -d "last year" +%Y
# 获取上个月第一天
date -d "$(date +%Y-%m-01) -1 month" +%Y-%m-%d
# 获取上个月最后一天
date -d "$(date +%Y-%m-01) -1 day" +%Y-%m-%d
日期比较
转换为时间戳格式进行比较
date命令常见参数格式
| 参数 | 作用 |
|---|---|
| %S | 秒(00-59) |
| %M | 分钟(00-59) |
| %H | 小时(00-23) |
| %I | 小时(00-12) |
| %m | 月份(1-12) |
| %P | 显示出 AM 或 PM |
| %a | 缩写的工作日名称(例如:Sun) |
| %A | 完整的工作日名称(例如:Sunday) |
| %b | 缩写的月份名称(例如:Jan) |
| %B | 完整的月份名称(例如:January) |
| %q | 季度(1-4) |
| %y | 简写的年份(例如:22) |
| %Y | 完整的年份(例如:2022) |
| %d | 本月中的第几天 |
| %j | 本年中的第几天 |
| %n | 换行符(Enter) |
| %t | 跳格(Tab) |
| %s | 时间戳 |
