shell:date 日期处理
- 操作系统
- 2024-12-03
- 26热度
- 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 | 时间戳 |