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. Polynomial_0

    @[注]两个一元多项式按照指数由大到小的顺序输入! #include <stdio.h> #define MAXSIZE 50 struct PolyNode { int coeffici ...

  2. c# 有序链表合并 链表反转

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. spring boot 如何添加拦截

    添加拦截其它挺简单的,直接上代码吧,我以简单的登陆验证拦截为例 1,先实现一个拦截器 package com.xinyue.interview.gm.filter; import javax.serv ...

  4. 极致21点开发DAY4

    完成的内容:1.修改上一篇博文中的Bug  2.完成任务窗口逻辑 using System; using System.Collections.Generic; using UnityEngine; ...

  5. RNA-seq标准化

    你的 heatmap 可能用错数据了 (组间表达量标准化) http://www.genek.tv/article/24 RNA-seq的标准化方法罗列 https://www.jianshu.com ...

  6. VS2017不能弹出安装界面的原因.

    如果这里选中了放大.100%入坑 解决办法:  禁用视觉主题,和元素,即可安装正常

  7. [最新]ABP ASP.NET Zero v5.5.2 破解

    参考https://www.cnblogs.com/xajh/p/8428818.html后, 搞定了Abp.AspNetZeroCore.dll.Abp.AspNetZeroCore.Web.dll ...

  8. 在.NET Core使用TimeZone将客户端时间转服务器本地时间但编译提示已过期

    当我们的项目国际化后,需要处理时区问题. 在.NET Core之前我们可以通过以下代码将客户端时间转换为服务端时间: DateTime serverTime = TimeZone.CurrentTim ...

  9. 在sparkStreaming实时存储时的问题

    1.实时插入mysql时遇到的问题,使用的updateStaeBykey有状态的算子 必须设置checkpoint  如果报错直接删掉checkpoint 在创建的时候自己保存偏移量即可 再次启动时读 ...

  10. Linux环境部署SVN服务器

    1. 安装SVN服务器: 检查是否已安装 # rpm -qa subversion 安装SVN服务器 # yum install httpd httpd-devel subversion mod_da ...