shell date 扩展功能(-d参数)
扩展功能
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参数)相关推荐
- shell实例第20讲:linux shell date的用法
linux shell date的用法 转自:https://www.cnblogs.com/faberbeta/p/linux-shell002.html 1.date中的参数 %% 一个文字的 % ...
- shell输入指定日期参数,输出该日期的前一天和后一天
shell输入指定日期参数,输出该日期的前一天和后一天 #!/bin/bash c=$1 if [ $# == 1 ]; then yesterday=`date -d "$c -1 day ...
- 8月第四周 | shell date、TGI衡量用户偏好
说好周更,总不能第一周就放鸽子,整理好了思路,开始下笔. 每周的这种杂记会比较零散.混乱而不成体系,我只是想记录下 我这周做了什么.遇到了什么不懂的.我怎么解决的 或者 我学了什么新知识.有什么新体悟 ...
- php中年月日用什么参数,PHP中date()日期函数参数整理
PHP中date()日期函数参数整理 发布于 2014-11-19 13:34:06 | 105 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...
- shell脚本传可选参数 getopts 和 getopt的方法
写了一个shell脚本,需要向shell脚本中传参数供脚本使用,达到的效果是传的参数可以是可选参数 下面是一个常规化的shell脚本: echo "执行的文件名为: $0";ech ...
- Linux基本命令之date命令的参数及获时间戳的方法
这篇文章主要为大家介绍了Linux基本命令中的date命令的参数及获时间戳的方法,在本文中列举了4个获取时间戳的方法,需要的朋友可以参考下 1.时间命令:date 向date命令传递参数适用'+'(加 ...
- shell中判断一个参数是否为整型
shell中判断一个参数是否为整型 判断参数是否为整型 #!/bin/bashfunction IntTest() {for argdo#算术运算符,当参数为整型数字时,执行失败(( $arg )) ...
- Linux下Shell脚本命令行参数:getopt、getopts用法
目录 简介 getopt 简介 支持选项 用法 getopt optstring parameters getopt [options] [--] getopt [options] -o|--opti ...
- 【shell】shell脚本读取给定参数|参数个数
目录 实例脚本 脚本 使用方法 数组获取参数 字符截取方法 解决类型 汇总 实例脚本 参数 $1, $2,..., $N代表了命令行的第1.2--N个参数,$0代表了本脚本的名字,$#代码参数个数,@ ...
最新文章
- Lua截取utf-8编码的中英文混合字符串
- Algorithm:C++语言实现之链表相关算法(单链公共结点问题、一般LCA、括号匹配、最长括号匹配、逆波兰表达式Reverse Polish Notation、直方图矩形面积、收集雨水问题)
- Java socket中关闭IO流后,发生什么事?(以关闭输出流为例)
- C\C++ 结构体初始化的四种方法
- java多线程传值覆盖_Java 多线程传值的四种方法
- 命令行下jq才是JSON 处理利器呀
- Django模型定义参考
- 网络安全不是奢侈品,而是必需品
- Nacos集群部署说明
- 基于jdk proxy的动态代理模式
- API文档和代码片段管理器:​​​​Dash
- 软件测试高频面试题真实分享/网上银行转账是怎么测的,设计一下测试用例。
- jQuery WEUI select的使用
- php 语句以句号结尾,短句末尾是否用句号
- 教授专栏33 | 黄阳光: 投资初创企业,应如何配置资源?
- 数据可视化--实验五:高维非空间数据可视化
- 精心整理史上最全的数据结构flash演示动画,共5个版本,祝大家考研成功!
- exure9 秘钥_AxureRP9.0秘钥(持续更新)
- XX集团工厂集成改造MES+SCADA数字化项目实施方案原创
- java pnpoly算法_PNPoly算法代码例子,判断一个点是否在多边形里面
热门文章
- 快速理解j=j++ 和 j=++j(新手入门)
- sizebox模型下载_Beware of box model size (留心盒子模型大小)
- nvidia linux屏幕管理,在 Nvidia 显卡下配置双显示器
- php 查询同一张表相同数据,SQL查出一张表中重复的所有记录数据
- HTML-超链接/锚链接/地图热点
- 如何成为自学成才的PYTHON后端开发人员?
- 2019年CTF4月比赛记录(三):SUSCTF 2nd、DDCTF、国赛线上初赛部分Web题目writeup与复现
- 【linux】循序渐进学运维-基础篇-at命令
- 杂谈 python脚本调用接口进行性能和稳定性测试(套路)
- 20道经典C语言编程题(初级)