Linux中的date命令
- 1、date指令
- 2、日期时间计算
1、date指令
在Linux操作系统中,date
指令是一个用于显示和设置系统日期和时间的基本工具,它不仅可以显示当前的日期和时间,还允许用户以不同的格式输出日期和时间,并进行日期时间的计算
date
指令的语法格式如下:
date [OPTION] [+FORMAT]
- OPTION:选项,用于指定操作。常用选项如下:
- -d:以特定格式显示指定日期时间的字符串,字符串前后必须加双引号
- -s:设置系统日期和时间,字符串前后必须加双引号
- -r:显示文件的最后修改时间
- FORMAT:输出格式,以
+
开头,后面跟日期时间格式。常用日期格式参数如下:- %Y:YYYY格式的年份
- %y:YY格式的年份
- %m:mm格式的月份(01~12)
- %d:dd格式的日(01~31)
- %H:HH格式的小时(00-23)
- %M:MM格式的分钟(00-59)
- %S:SS格式的秒数(00-59)
- %F:YYYY-mm-dd格式的日期,同%Y-%m-%d
- %T:HH-MM-SS格式的时间,同%H:%M:%S
- %s:从1970年1月1日00:00:00到目前经历的秒数
- %c:日期和时间(Tue Nov 20 22:13:52 2024)
- %w:星期几(0-6),0表示星期天
- %u:星期几(1-7),7表示星期天
值得注意的是,以上格式可以任意组合,还可以包括非格式字符串,例如:
date "+今天是%Y-%d-%m,现在是$H:%M:%S"
2、日期时间计算
1) 当前日期时间(今天)
date +"%Y-%m-%d $H:%M:%S"
date -d today +"%Y-%m-%d"
date -d now +"%Y-%m-%d"
2) 前一天(昨天)
date -d "-1 day" +"%Y-%m-%d"
date -d yesterday +"%Y-%m-%d"
date -d "1 day ago" +"%Y-%m-%d"
3) 一周前(上周)
date -d "1 week ago" +"%Y-%m-%d"
4) 一月前(上月)
date -d "-1 month" +"%Y-%m-%d"
date -d last-month +"%Y-%m-%d"
5) 一年前(去年)
date -d "-1 year" +"%Y-%m-%d"
date -d last-year +"%Y-%m-%d"
6) 一小时前
date -d "1 hour ago" +"%Y-%m-%d $H:%M:%S"
date -d "last-hour" +"%Y-%m-%d $H:%M:%S"
7) 一分钟前
date -d "1 minute ago" +"%Y-%m-%d $H:%M:%S"
8) 一秒前
date -d "1 second ago" +"%Y-%m-%d $H:%M:%S"
9) 上月第一天
date -d "$(date +%Y-%m-01) -1 month" +"%Y-%m-%d"
10) 上月最后一天
date -d "$(date +%Y-%m-01) -1 day" +%Y-%m-%d
11) 日期循环
#!/bin/bashsta_date=2025-01-01
end_date=2025-06-01
sta_sec=`date -d "$sta_date" "+%s"`
end_sec=`date -d "$end_date" "+%s"`
for((i=$sta_sec;i<=$end_sec;i+=86400));dodate -d "@$i" +"%Y-%m-%d"
done
参考文章:
https://www.cnblogs.com/raphael5200/p/5114821.html
https://blog.csdn.net/qq_33216613/article/details/142135530