• linux之date命令


    date 命令用于 显示 或 设置系统的时间或日期。

    格式:date [参数] [+日期格式]

    注意: date后面有一个空格,否则无法识别命令,shell对空格是很严格的。

    1、Linux date命令参数

     日期时间格式符号:

       %H  小时(以00-23来表示)。
     %I  小时(以01-12来表示)。
     %K  小时(以0-23来表示)。
     %l  小时(以0-12来表示)。
     %M  分钟(以00-59来表示)。
     %P  AM或PM。
     %r   时间(含时分秒,小时以12小时AM/PM来表示)。
     %s  总秒数。起算时间为1970-01-01 00:00:00 UTC。
     %S  秒(以本地的惯用法来表示)。
     %T  时间(含时分秒,小时以24小时制来表示)。
     %X  时间(以本地的惯用法来表示)。
     %Z  数字方式显示时区。
     %a  星期几 ,缩写(Sun…Sat)。
     %A  星期几 ,完整英文星期(Sunday…Saturday)
     %b  月份 (Jan…Dec)
     %B  月份 (January…December)
     %c  日期与时间。只输入date指令也会显示同样的结果。
     %d  日(以01-31来表示)。
     %D  日期(含年月日)。以MM/DD/YY显示日期。

     %F  日期(含年月日)。以YYYY-MM-DD显示日期.
     %j     一年中的第几天 (001…366)。
     %m  月份(以01-12来表示)。
     %U  该年中的周数。

        %u    一周中的第几天 (1…7) (1是星期一)
     %w  该周的天数,0代表周日,1代表周一,以此类推。

       %W    一年中的第几周 (00…53) (以 Monday 为一周的第一天的情形)
     %x  日期(以本地的惯用法来表示)。以MM/DD/YYYY显示日期.
     %y  年份(以00-99来表示)。
     %Y  年份(以四位数来表示)。
     %n  在显示时,插入新的一行。
     %t  在显示时,插入tab。
     MM  月份(必要)。
     DD  日期(必要)。
     hh  小时(必要)。
     mm  分钟(必要)。

     CC  年份的前两位数(选择性)。
     YY  年份的后两位数(选择性)。
     ss  秒(选择性)。

    选择参数:
     -d <字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
     -s <字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
     -u  显示GMT。即显示或设置全球时间(格林威治时间)。

     -f 文件路径    作用:可将-d参数指定的运算规则写入文件中,通过-f参数指定文件路径,date命令逐行读取该文件,并按照此文件指定的运算规则输出运算后的时间。

       -r  文件路径  作用:显示指定文件最后被修改的时间。
     --help  在线帮助。
     --version  显示版本信息。

    2、示例:

    2.1、-s, --set 设置时间

    1. # 设置当前时间,只有root权限才能设置,其他只能查看。
    2. # 设置成20080523,这样会把具体时间设置成空00:00:00
    3. date -s 20080523
    4. # 设置具体时间,不会对日期做更改
    5. date -s 01:01:01
    6. # 这样可以设置全部时间,示例1
    7. date -s "01:01:01 2008-05-23"
    8. # 这样可以设置全部时间,示例2
    9. date -s "01:01:01 20080523"
    10. # 这样可以设置全部时间,示例3
    11. date -s "2008-05-23 01:01:01"
    12. # 这样可以设置全部时间,示例4
    13. date -s "20080523 01:01:01"

     2.2、-d, --date 显示时间加减后结果

    格式: date -d '运算规则'
    作用:指定时间运算规则,date会将当前时间做指定的运算,然后输出运算后的时间

    1. # 输出3分钟前的时间 (3天day、月month、年year前同理)
    2. date -d '3 minutes ago'
    3. date -d '-3 minutes'
    4. # 输出3分钟后的时间(3天、月、年前同理)
    5. date -d '3 minutes'
    6. # 此处时间的单复数都可以,效果一样
    7. date -d '-3 minutes'
    8. date -d '-3 minute'
    9. # 显示后一天的日期
    10. date +%Y%m%d --date "+1 day"
    11. # 显示前一天的日期
    12. date +%Y%m%d --date "-1 day"
    13. # 显示上一月的日期
    14. date +%Y%m%d --date "-1 month"
    15. # 显示下一月的日期
    16. date +%Y%m%d --date "+1 month"
    17. # 显示前一年的日期
    18. date +%Y%m%d --date "-1 year"
    19. # 显示下一年的日期
    20. date +%Y%m%d --date "+1 year"

    2.3、-f, --file 批量运算

    格式:date -f 文件路径
    作用:可将-d参数指定的运算规则写入文件中,通过-f参数指定文件路径,date命令逐行读取该文件,并按照此文件指定的运算规则输出运算后的时间。

    1. # datefile文件内容
    2. 1 years ago
    3. -1 year
    4. -3 month
    5. -2 days
    6. 1 year
    7. 2 month
    1. # 执行命令
    2. date -f datefile

    # 输出结果
    2022年 10月 07日 星期五 15:09:35 CST
    2022年 10月 07日 星期五 15:09:35 CST
    2023年 07月 07日 星期五 15:09:35 CST
    2023年 10月 05日 星期四 15:09:35 CST
    2024年 10月 07日 星期一 15:09:35 CST
    2023年 12月 07日 星期四 15:09:35 CST

    2.4、-r --reference 显示文件修改时间

    格式:date -r 文件路径
    作用:显示指定文件最后被修改的时间。

    1. $ date -r datefile
    2. 2023年 10月 07日 星期六 15:09:21 CST
    3. $ date -r datefile "+%Y-%m-%d %H:%m:%S"
    4. 2023-10-07 15:10:21

    注:cat查看文件不影响修改时间,vim修改文件并保存即会修改时间

  • 相关阅读:
    5分钟掌握接口自动化测试,4个知识点简单易学!
    LeetCode算法题解(动态规划,背包问题)|LeetCode416. 分割等和子集
    顺序表与单链表
    Keepalived+LVS部署
    [附源码]计算机毕业设计JAVA成都团结石材城商家协作系统
    通知定档2024中国(成都)国际线路板展览会
    vue项目中引入Luckysheet
    音视频发展调研
    合宙Air724UG LuatOS-Air LVGL API控件-图片(Gif)
    Grafana 10 新特性解读:体验与协作全面提升
  • 原文地址:https://blog.csdn.net/weixin_40482816/article/details/133635381