date命令的语法结构:

date [-d][时间运算] [+FORMAT]

先说简单的,[+FORMAT] 部分,主要有如下输出格式:

时间方面:

%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)

常用格式:

date        #显示当前本地时间
2019年 01月 04日 星期五 15:54:38 CST
date -u #显示当前格林威治时间
2019年 01月 04日 星期五 08:05:29 UTC
date +'%Y-%m-%d'
2019-01-04
date +'%Y-%m-%d %T'
2019-01-04 16:06:40
date +'%F'
2019-01-04
date +'%y%m%d %H:%M:%S'
190104 16:08:17
date +'%w' #显示周几
5
date +'%W' #显示第几周
00
date +'%s' #显示时间戳
1546589343

时间运算部分:

date -d '-1 day'

date -d '-1 month'

date -d '-1 years'

date -d '-1 week'

date -d '-1 hour'

date -d '-1 minute'

date -d '-1 second'

使用date命令,对指定日期时间进行加减:

date -d '2018-12-25 +2 day' '+%F'
--
date -d '2018-12-25 +2 week' '+%F'
--
date -d '20181225 +2 week' '+%F'
--
date -d '181225 +2 week' '+%F'
--

虽然日期选择的格式不同,但是系统会自动识别。但是,对小时、分、秒进行加减,时间部分只能使用一种格式。

date -d '181225 10 +2hour' '+%F %T'    -- ::

date -d '20181225 10 +2hour' '+%F %T'    -- ::

date -d '2018-12-25 10 +2hour' '+%F %T'    -- ::

date -d '2018-12-25 10:25 +2hour' '+%F %T'    -- ::  #使用 小时:分:秒 的格式,计算出来的时间错误!

date -d '2018-12-25 1025 +2hour' '+%F %T'    -- ::

date -d '2018-12-25 102530 +2hour' '+%F %T'    date: 无效的日期"2018-12-25 102530 +2hour"  #时间部分,只能到分钟,具体原因尚不清楚!

date -d '2018-12-25 102530 +2 minute' '+%F %T'    date: 无效的日期"2018-12-25 102530 +2 minute"  #时间部分,只能到分钟,具体原因尚不清楚!

date -d '2018-12-25 1025 +2 minute' '+%F %T'      -- ::

变量引用:

在shell语法里,我们使用date命令可以表示任何我们需要的时间,那么,如何引用用date命令赋值的一个变量呢。

假设,变量d1=$(date -d '2018-12-25 1025 +2 minute' '+%F %T')

对变量d1的引用,不是直接写d1,而是${d1}

cww@cww-XPS--:~$ d1=$(date -d '2018-12-25 1025 +2 minute' '+%F %T')
cww@cww-XPS--:~$ echo d1
d1
cww@cww-XPS--:~$ echo ${d1}
-- ::
 

shell date命令的更多相关文章

  1. shell date 命令说明

    shell date 命令说明 使用方法:date [选项]... [+格式] 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 以给定的格式 ...

  2. shell date 命令整理

    最近发现date命令特别好用(在mac里面不行) 1.获取今天的日期 [root@nd02 ~]# date +%Y%m%d 2.获取某一天的日期 [root@nd02 ~]# date -d &qu ...

  3. Shell date 命令详解

    格式: date [选项] ... [+格式] 选项说明: -d ,--date=字符串 显示指定字符串所描述的时间 格式说明: 例子1: #!/bin/bash ##. 获取当前系统时间 YYYY- ...

  4. javascript 的Date 格式化, 模仿shell中date命令的格式

    原文:javascript 的Date 格式化, 模仿shell中date命令的格式 shell 中显示当前的日期 [root@localhost]$ date '+%Y-%m-%d %H:%M:%S ...

  5. shell的date命令:使用方法,以及小时、分钟的计算

    shell命令格式严格,不像python那样命令行中可以添加空格.如等号两边无空格.有多余空格错误,日期date命令就是最明显的例子. 命令格式: date [-u] [-d datestr] [-s ...

  6. Shell脚本、Shell脚本结构、date命令的用法、变量

    1.Shell脚本: shell是一种脚本语言 目的:可以实现自动化运维,能大大增加运维的效率.2.Shell脚本结构:   #!/bin/bash  以#!/bin/bash开头,即以/bin/ba ...

  7. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  8. shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

    7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...

  9. Linux centosVMware shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

    一. shell脚本介绍 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 shell是系统命令的集合 shell脚 ...

随机推荐

  1. 如何查看端口recv和send

    1.进入到pod的宿主机   一般来说 ssh  slaveX 2.查看进程号   top可以看到 3.执行命令    nsenter --target 10594 --net netstat -an

  2. Linux下Netty实现高性能UDP服务(SO_REUSEPORT)

    参考: https://www.jianshu.com/p/61df929aa98b SO_REUSEPORT学习笔记:http://www.blogjava.net/yongboy/archive/ ...

  3. os.path.dirname使用方法

    import os path1=os.path.abspath(__file__) print(path1)#当前文件的绝对路径 path2=os.path.dirname(os.path.abspa ...

  4. Linux系统下的网络配置

    一.修改配置文件,重启后设置不丢失 [Red Hat Linux/CentOS] 使用ifconfig查看使用的网口: [root@localhost /]# ifconfig 修改对应网口配置文件: ...

  5. 异常将上下文初始化事件发送到类的侦听器实例.[org.springframework.web.context.ContextLoaderListener] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class p

    严重: 异常将上下文初始化事件发送到类的侦听器实例.[org.springframework.web.context.ContextLoaderListener]org.springframework ...

  6. jenkins+Gitlab+maven+tomcat实现自动集成、打包、部署

    一.前言 首先出于提高自己技术水平和琢磨能做点什么能提高工作效率,上线工作实在无聊.重复(手动编译.打包,传包,重启),于是就想到了jenkins,jenkins持续集成已经不是什么新鲜的话题,网上文 ...

  7. 洛谷 K短路(魔法猪学院)

    A*+迪杰特斯拉... 第十一个点卡爆 不管了 #include<iostream> #include<algorithm> #include<cstring> # ...

  8. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)

    C 模拟 题意:给的是一个矩形,然后√2 的速度走,如果走到边上就正常反射,走到角上,暂停反射,我们知道要不循环要不暂停,记录走到的点最短时间 /*************************** ...

  9. Spring Boot默认的JSON解析框架设置

    方案一:启动类继承WebMvcConfigurerAdapter,覆盖方法configureMessageConverters ... @SpringBootApplication public cl ...

  10. Oracle生成GUID

    ,),),),),) GUID FROM ( SELECT SYS_GUID() GUID FROM DUAL )