Linux Date

Date 常规时间

# 查看日志为 2022-03-03-16:09:36 格式
date '+%Y-%m-%d-%H:%M:%S'

# 查看明天日期
date -d next-day +%Y-%m-%d-%H:%M:%S
date -d tomorrow +%Y-%m-%d-%H:%M:%S

# 查看昨天日期
date -d last-day +%Y-%m-%d-%H:%M:%S
date -d yesterday +%Y-%m-%d-%H:%M:%S

# 查看上个月日期
date -d last-month +%Y-%m-%d-%H:%M:%S

# 查看下个月日期
date -d next-month +%Y-%m-%d-%H:%M:%S

# 查看明年日期
date -d next-year +%Y

# 获取昨天或多天前的日期
date -d 'n days ago' +%Y%m%d   //n换为数字,默认是昨天

Date 语法参数

# date命令能用来显示或设定系统的日期和时间,在显示方面,使用者能设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:

# 时间方面
    %:印出
    % %n:下一行
    %t: 跳格
    %H: 小时(00..23)
    %I: 小时(01..12)
    %k: 小时(0..23)
    %l: 小时(1..12)
    %M: 分钟(00..59)
    %p: 显示本地 AM 或 PM
    %r: 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
    %s: 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 
    %S: 秒(00..61)
    %T: 直接显示时间 (24 小时制)
    %X: 相当于 %H:%M:%S
    %Z: 显示时区

# 日期方面
    %a:星期几 (Sun..Sat)
    %A:星期几 (Sunday..Saturday)
    %b:月份 (Jan..Dec)
    %B:月份 (January..December)
    %c:直接显示日期和时间
    %d:日 (01..31)
    %D:直接显示日期 (mm/dd/yy)
    %h:同 %b
    %j:一年中的第几天 (001..366)
    %m:月份 (01..12)
    %U:一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
    %w:一周中的第几天 (0..6)
    %W:一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
    %x:直接显示日期 (mm/dd/yy)
    %y:年份的最后两位数字 (00.99)
    %Y:完整年份 (0000..9999)

# 若是不以加号作为开头,则表示要设定时间,而时间格式为:MMDDhhmm[[CC]YY][.ss]

# 其中:
    MM 为月份
    DD 为日
    hh 为小时
    mm 为分钟
    CC 为年份前两位数字
    YY 为年份后两位数字
    ss 为秒数
# 选项:
    -d datestr: 显示 datestr 中所设定的时间 (非系统时间)
    --help: 显示辅助讯息
    -s datestr: 将系统时间设为 datestr 中所设定的时间
    -u: 显示目前的格林威治时间
    --version: 显示版本编号

使用示例

# 显示时间后跳行,再显示目前日期:
date +%T%n%D

# 显示月份和日数:
date +%B %d

# 显示日期和设定时间(12:34:56):
date --date 12:34:56

# 设置系统当前时间(12:34:56):
date --s 12:34:56

# 通过date显示昨天的日期,-d后面接日期上字符串 yesterdate
date -d 'yesterday'
2022年 03月 02日 星期三 16:13:48 CST

# 接上日期字符串,显示具体的日期,然后通过+转换为具体的格式
date -d 'yesterday' '+%Y-%m-%d %H:%M:%S'  
2022-03-02 16:14:20
 
# 通过-d接上具体日期字符串,主要是显示某个特定的日期,以默认的格式显示
date -d '2008-09-18 20:00:00'   
2008年 09月 18日 星期四 20:00:00 CST

# 以特定格式显示某个日期
date -d '2008-09-18 20:00:00' '+%Y-%m-%d %H:%M:%S'  
2008-09-18 20:00:00
 
# 查看3天之后的日期
date -d '+3 days' '+%Y-%m-%d %H:%M:%S'
2018-07-07 15:44:44
 
# 查看3天之前的日期
date -d '-3 days' '+%Y-%m-%d %H:%M:%S'
2018-07-01 15:45:10
 
# 进行天,小时,分钟的计算
date -d '-3 days 2 hours' '+%Y-%m-%d %H:%M:%S'
2018-07-01 17:45:36

date -d '-3 days -2 hours' '+%Y-%m-%d %H:%M:%S'
2018-07-01 13:45:42

date -d '+3 days +2 hours 1 minute' '+%Y-%m-%d %H:%M:%S'
2018-07-07 17:46:56

date -d '+3 days +2 hours -1 minute' '+%Y-%m-%d %H:%M:%S'
2018-07-07 17:45:0