扩展功能 
date 工具可以完成更多的工作,不仅仅只是打印出当前的系统日期。您可以使用它来得到给定的日期究竟是星期几,并得到相对于当前日期的相对日期。了解某一天是星期几 
GNU 对 date 命令的另一个扩展是 -d 选项,当您的桌上没有日历表时(UNIX 用户不需要日历表),该选项非常有用。使用这个功能强大的选项,通过将日期作为引号括起来的参数提供,您可以快速地查明一个特定的日期究竟是星期几: 
$ date -d "nov 22" 
Wed Nov 22 00:00:00 EST 2006 

在本示例中,您可以看到今年的 11 月 22 日是星期三。 
所以,假设在 11 月 22 日召开一个重大的会议,您可以立即了解到这一天是星期三,而这一天您将赶到驻地办公室。 
获得相对日期 
d 选项还可以告诉您,相对于 当前日期若干天的究竟是哪一天,从现在开始的若干天或若干星期以后,或者以前(过去)。通过将这个相对偏移使用引号括起来,作为 -d 选项的参数,就可以完成这项任务。 
例如,您需要了解两星期以后的日期。如果您处于 Shell 提示符处,那么可以迅速地得到答案: 
$ date -d ’2 weeks’ 
关于使用该命令,还有其他一些重要的方法。使用 next/last指令,您可以得到以后的星期几是哪一天: 
$ date -d ’next monday’ (下周一的日期) 
$ date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d 
$ date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d 
$ date -d last-month +%Y%m(上个月是几月) 
$ date -d next-month +%Y%m(下个月是几月) 
使用 ago 指令,您可以得到过去的日期: 
$ date -d ’30 days ago’ (30天前的日期) 
您可以使用负数以得到相反的日期: 
$ date -d ’dec 14 -2 weeks’ (相对:dec 14这个日期的两周前的日期) 
$ date -d ’-100 days’ (100天以前的日期)

我是一个写得代码,算的算法,做得架构,打得过产品的程序媛,目前就职于滴滴,扫码关注我,回复"内推",和我一起奔涌吧。

$ date -d ’50 days’(50天后的日期) 
这个技巧非常有用,它可以根据将来的日期为自己设置提醒,可能是在脚本或 Shell 启动文件中,如下所示: 
DAY=`date -d ’2 weeks’ +"%b %d"` 
if test "`echo $DAY`" = "Aug 16"; then echo ’Product launch is now two weeks away!’; fi

==========================================================================

echo "Today is `date +%Y%m%d`!"

echo "Yesterday is `date --date='1 day ago' +%Y%m%d`!"
echo "Yesterday is `date --date='1 days ago' +%Y%m%d`!"
echo "Yesterday is `date --date='-1day' +%Y%m%d`!"

echo "Tomorrow is `date --date='+1 day' +%Y%m%d`!"

echo "Today is `date +%Y-%m-15`!"

echo "Today is `date --date='-1 month'`"
echo   `date --date='-1 month' +'Last month was %B?'`

echo "`date --date="$(date +%Y-%m-15) -1 month" +'Last month was %B!' `"

注意:$(date +%Y-%m-15) -1 month 这个是个变量,所以必须用(“”)括起来,尽管最外面有(“”),但是还是不能够换成(‘’)

============================================================================================

date命令如何获得上星期的日期?

lastmonth=`date +%Y-%m --date="-1 month"`"-01";

然后 awk -v 作为一个参数这样传进去简单点。

#date -d "-1 week" "+%Y%m%d %A"

举一反三:date命令获得前天,昨天,明天,后天,上个月,下个月的日期

date -d "-2 day" "+%Y%m%d %A"   或 date --date="2 days ago" "+%Y%m%d %A"

date -d "-1 day" "+%Y%m%d %A"   或 date --date="1 day ago" "+%Y%m%d %A"

date -d "1 day" "+%Y%m%d %A"

date -d "2 day" "+%Y%m%d %A"

date -d "-1 month" "+%Y%m%d %A"

date -d "1 month" "+%Y%m%d %A"

echo `date -d "-1 month" "+%Y-%m-%d %X"`

还有其他用法:

date +%s   可以得到UNIX的时间戳;

======================================================================================

输出昨天日期

date -d "1 day ago" +"%Y-%m-%d"
2016-11-29

2秒后输出

时间戳类型的 输出对应的1234567890秒

date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S"
2009-02-13 23:02:30

普通格式

date -d "2016-11-30" +"%Y/%m/%d %H:%M.%S"
2016/11/30 00:00.00

apache格式转换:

date -d "Nov 30, 2016 12:00:37" +"%Y-%m-%d %H:%M.%S"
2016-11-30 12:00.37

格式转换后时间游走:

date -d "Nov 30, 2016 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
2014-11-30 00:00.37
  • 加减操作
date +%Y%m%d //显示前天年月日
date -d "+1 day" +%Y%m%d //显示前一天的日期
date -d "-1 day" +%Y%m%d //显示后一天的日期
date -d "-1 month" +%Y%m%d //显示上一月的日期
date -d "+1 month" +%Y%m%d //显示下一月的日期
date -d "-1 year" +%Y%m%d //显示前一年的日期
date -d "+1 year" +%Y%m%d //显示下一年的日期

shell date 扩展功能(-d参数)相关推荐

  1. shell实例第20讲:linux shell date的用法

    linux shell date的用法 转自:https://www.cnblogs.com/faberbeta/p/linux-shell002.html 1.date中的参数 %% 一个文字的 % ...

  2. shell输入指定日期参数,输出该日期的前一天和后一天

    shell输入指定日期参数,输出该日期的前一天和后一天 #!/bin/bash c=$1 if [ $# == 1 ]; then yesterday=`date -d "$c -1 day ...

  3. 8月第四周 | shell date、TGI衡量用户偏好

    说好周更,总不能第一周就放鸽子,整理好了思路,开始下笔. 每周的这种杂记会比较零散.混乱而不成体系,我只是想记录下 我这周做了什么.遇到了什么不懂的.我怎么解决的 或者 我学了什么新知识.有什么新体悟 ...

  4. php中年月日用什么参数,PHP中date()日期函数参数整理

    PHP中date()日期函数参数整理 发布于 2014-11-19 13:34:06 | 105 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

  5. shell脚本传可选参数 getopts 和 getopt的方法

    写了一个shell脚本,需要向shell脚本中传参数供脚本使用,达到的效果是传的参数可以是可选参数 下面是一个常规化的shell脚本: echo "执行的文件名为: $0";ech ...

  6. Linux基本命令之date命令的参数及获时间戳的方法

    这篇文章主要为大家介绍了Linux基本命令中的date命令的参数及获时间戳的方法,在本文中列举了4个获取时间戳的方法,需要的朋友可以参考下 1.时间命令:date 向date命令传递参数适用'+'(加 ...

  7. shell中判断一个参数是否为整型

    shell中判断一个参数是否为整型 判断参数是否为整型 #!/bin/bashfunction IntTest() {for argdo#算术运算符,当参数为整型数字时,执行失败(( $arg )) ...

  8. Linux下Shell脚本命令行参数:getopt、getopts用法

    目录 简介 getopt 简介 支持选项 用法 getopt optstring parameters getopt [options] [--] getopt [options] -o|--opti ...

  9. 【shell】shell脚本读取给定参数|参数个数

    目录 实例脚本 脚本 使用方法 数组获取参数 字符截取方法 解决类型 汇总 实例脚本 参数 $1, $2,..., $N代表了命令行的第1.2--N个参数,$0代表了本脚本的名字,$#代码参数个数,@ ...

最新文章

  1. Lua截取utf-8编码的中英文混合字符串
  2. Algorithm:C++语言实现之链表相关算法(单链公共结点问题、一般LCA、括号匹配、最长括号匹配、逆波兰表达式Reverse Polish Notation、直方图矩形面积、收集雨水问题)
  3. Java socket中关闭IO流后,发生什么事?(以关闭输出流为例)
  4. C\C++ 结构体初始化的四种方法
  5. java多线程传值覆盖_Java 多线程传值的四种方法
  6. 命令行下jq才是JSON 处理利器呀
  7. Django模型定义参考
  8. 网络安全不是奢侈品,而是必需品
  9. Nacos集群部署说明
  10. 基于jdk proxy的动态代理模式
  11. API文档和代码片段管理器:​​​​Dash
  12. 软件测试高频面试题真实分享/网上银行转账是怎么测的,设计一下测试用例。
  13. jQuery WEUI select的使用
  14. php 语句以句号结尾,短句末尾是否用句号
  15. 教授专栏33 | 黄阳光: 投资初创企业,应如何配置资源?
  16. 数据可视化--实验五:高维非空间数据可视化
  17. 精心整理史上最全的数据结构flash演示动画,共5个版本,祝大家考研成功!
  18. exure9 秘钥_AxureRP9.0秘钥(持续更新)
  19. XX集团工厂集成改造MES+SCADA数字化项目实施方案原创
  20. java pnpoly算法_PNPoly算法代码例子,判断一个点是否在多边形里面

热门文章

  1. 快速理解j=j++ 和 j=++j(新手入门)
  2. sizebox模型下载_Beware of box model size (留心盒子模型大小)
  3. nvidia linux屏幕管理,在 Nvidia 显卡下配置双显示器
  4. php 查询同一张表相同数据,SQL查出一张表中重复的所有记录数据
  5. HTML-超链接/锚链接/地图热点
  6. 如何成为自学成才的PYTHON后端开发人员?
  7. 2019年CTF4月比赛记录(三):SUSCTF 2nd、DDCTF、国赛线上初赛部分Web题目writeup与复现
  8. 【linux】循序渐进学运维-基础篇-at命令
  9. 杂谈 python脚本调用接口进行性能和稳定性测试(套路)
  10. 20道经典C语言编程题(初级)