shell之date

文章目录

  • date
    • -d,--date参数
    • [格式]

date

date后边可以接两个参数,一个是[选项],一个是[格式],都是选填。
[选项][格式]的顺序可前可后。
[选项]为空,则为当前时间;
[格式]为空,则为默认格式。如下:

$ date
Sat Jan 12 22:12:50 CST 2019

通过date --h得到帮助如下:

$ date --h
Usage: date [OPTION]... [+FORMAT]
 

其中,[选项]中,重点是-d, --date=STRING。以下解析。

-d,–date参数

三种参数接法

  • -d str
  • --date str
  • --date=str
    其中,str通常可以有两种格式
  • 时间字符串格式,如 2010/08/092010-10-182010-10-18 00:00:00
  • 以当前时间做计算的格式,如+1 day(s)-1 day(s)1 day(s) ago等,复数单数均可。
    其中注意
  1. date后面每个空格之间都是一个独立的参数,分别看做整体,用双引号格式能看的更为清楚,如date "+%Y%m%d %H:%M:%S" -d "+1 hour"
    • -d“-2 day 20111111”指定输出内容
    • “+%Y%m%d”是一个整体,控制输出格式,+后面无空格
  2. 参数顺序无关
    • date -d "-2 day 20111111" +%Y%m%d
    • date +%Y%m%d -d "-2 day 20111111"
    • date +%Y%m%d -d "20111111 -2 day"
      都一样
  3. 独立参数有无双引号都行
    date -d 2014-02-13 +%s和date -d"2014-02-13" "+%s"是一样的,还有date -d’2014-02-13’ +%s

时间字符串的转化:
用date 的输出格式控制实现,但“月日年”和“时分秒”必须分开处理,否则会无法识别。such as
2013-10-30 20:12:59 或者 20131030 20:12:59
注意:
1,二者用空格分割;
2,年月日作为整体,格式十分灵活,可以随意写。但时分秒必须用冒号”:”分开,否则无法识别。
更多参考:https://blog.csdn.net/longshenlmj/article/details/14165845

举例:

date -d "-1 year" 
date -d "-1 month" 
date -d "-1 day" 
date -d "-1 hour" 
date -d "-1 minute" 

[格式]

参考:https://www.cnblogs.com/kimbo/p/7102203.html
常用格式:

%Y  年份2019
%y  年份19
%m  月份01
%d  天13
%H  24制小时
%M  分钟
%S  秒
%F  等价于%Y-%m-%d
%T  等价于%H:%M:%S

如:

$ date -d "-1 day" "+%Y-%m-%d"
2019-01-11

你可能感兴趣的:(shell)