日常工作中经常使用date这个命令,几乎所有与日期时间相关的操作都会跟这个命令扯上点关系。简单写几条经常使用到的date命令,仅供大家参考。

首先检查一下date的版本,注意如果你用的不是GNU date,那么以下的命令不保证成功。

date --version
date (GNU coreutils) 5.97
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software.  You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie.

先看看最简单的一个,没啥好解释的。

date
Tue Nov :: CST
 
格式化输出,
%F是按照YYYY-YY-DD的格式显示当前日期
%D是按照MM/DD/YY的格式显示当前日期。
类似%F/D的参数是什么意思,man date都能找到
 date +%F
-- date +%D
//

有很多需求都是计算N天前/后,N月前/后,甚至是N年。。。。。。那么下边的操作应该比较合适

#计算3天前的日期
date +%D -d '-3 days'
//
 #计算3天后的日期
date +%D -d '+3 days'
//
 #计算3天后的日期,写不写+都一个效果,跟上边结果一样
date +%D -d '3 days'
//
#计算1个月前的日期
date +%F -d '-1 month'
--
#计算1年前的日期
date +%F -d '-1 year'
--

再来看看相关时间的操作,有了刚才上边对日期操作的理解,看这个时间相比不难。E文单词不懂的去问translate.google.com.hk ^_^

获取当前时间
date +%T
:: 获取1小时前的时间
date +%T -d '-1 hours'
:: 获取10分钟前的时间
date +%T -d '-10 minutes'
:: 获取3小时后的时间
date +%T -d '3 hours'
::

有关时间戳的处理,时间戳的基准是1970年1月1日0点0分0秒,注意这可是格林尼治天文台的时间,不是北京时间啊。

 显示系统当前的时间戳
date +%s 把某时间戳转换回日期格式
date -d "@1352183334"
Tue Nov :: CST
 
看到了吧,因为现在这个系统是东8区的时区,所以0时间戳时候,这系统应该已经是1970年1月1日早上8点了
date -d "@0"
Thu Jan  1 08:00:00 CST 1970

再来个计算任意日期的前N日或后N日如何操作

DAY=""
echo $DAY date +%F -d "$DAY 1 day"
-- date +%F -d "$DAY -1 day"
--

计算两个日期相差天数,比如2012年11月1日和2010年5月1日,相差多少天呢?

d1=$(date +%s -d )
d2=$(date +%s -d )
echo $(((d1-d2)/))

date用法的更多相关文章

  1. JavaScript八张思维导图—Date用法

    JS基本概念 JS操作符 JS基本语句 JS数组用法 Date用法 JS字符串用法 JS编程风格 JS编程实践 不知不觉做前端已经五年多了,无论是从最初的jQuery还是现在火热的Angular,Vu ...

  2. Shell之date用法

    创建以当前时间为文件名的 mkdir `date+%Y%m%d` 备份以时间做为文件名的 tar cvf./htdocs`date +%Y%m%d`.tar ./* date命令如何获得上星期的日期? ...

  3. PHP中日期时间函数date()用法总结

    date()是我们常用的一个日期时间函数,下面我来总结一下关于date()函数的各种形式的用法,有需要学习的朋友可参考. 格式化日期date() 函数的第一个参数规定了如何格式化日期/时间.它使用字母 ...

  4. Linux的date用法

    显示时间是个常用的命令,在写shell脚本中也经常会用到与日期相关文件名或时间显示.无论是linux还是windows下都是date命令. Linux下date命令用法 date [OPTION]… ...

  5. linux date用法

    读者可以设定特定的格式,格式设定规则:一个加号后接数个标记,每个标记中都有%,其中可用的标记列表和说明如下:  %n : 下一行 %t : 跳格 %H : 小时(00..23) %I : 小时(01. ...

  6. Linux date命令的用法

    在linux shell编程中,经常用到日期的加减运算以前都是自己通过expr函数计算,很麻烦.其实date命令本身提供了日期的加减运算非常方便. 例如:得到昨天的时间date  --date=&qu ...

  7. 11.Linux date命令的用法

    date命令常的日常应用   修改时间 date -s “2008/05/23 19:20″ 打包文件 tar zcvf log-$(date +$F).gz /home/admin/logs 同步阿 ...

  8. JS中new Date()用法及获取服务器时间

    1.获取服务器时间: var now = new Date($.ajax({async: false}).getResponseHeader("Date")); 2.new Dat ...

  9. 用bat使用date和time命令

    D:\>date /T 2010-12-10 星期五 D:\>echo %date:~0,10% 2010-12-10 date:命令(别忘记date后面有个冒号) ~0:从索引0开始取内 ...

随机推荐

  1. crontab经验

    1.基本格式  第1列分钟1-59  第2列小时1-23(0表示子夜)  第3列日1-31  第4列月1-12  第5列星期0-6(0表示星期天)  第6列要运行的命令 2.关于日志 (1)基本日志位 ...

  2. JavaScript语法支持严格模式:"use strict"

    如果给JavaScript代码标志为“严格模式”,则其中运行的所有代码都必然是严格模式下的.其一:如果在语法检测时发现语法问题,则整个代码块失效,并导致一个语法异常.其二:如果在运行期出现了违反严格模 ...

  3. keil 中用函数指针调用函数的参数限制

    NSIC中,通过函数指针调用的函数的参数的个数没有限制,但是KeilC对此有限制,至多3个参数.因为,KeilC编译时,无法通过函数指针找到该函数的局部数据段,也就无法通过局部数据段传递参数,只能通过 ...

  4. 批量删除Kindle Personal Documents

    javascript:(function(){ var v = new RegExp("amazon"); if (!v.test(document.URL)) { return ...

  5. mysql 增量导入到elasticsearch

    <pre name="code" class="html">zjtest7-redis:/odbc_es# cat /odbc_es/run_mys ...

  6. 解决SQL server不支持utf8,php却用utf8的矛盾问题

    function convert2utf8($string) { return iconv("gbk","utf-8",$string); } function ...

  7. unix c 11

    多线程(thread)    操作系统支持多进程,进程内部使用多线程.    进程是 重量级的,拥有自己 独立的内存空间.    线程是 轻量级的,不需要拥有自己 独立的内存空间,线程的内存空间:1 ...

  8. IE6 max-width max-height 不起作用 解决其兼容性问题

     .catelist dl dd ul li img {width: expression(this.width > 228 ? '228px': true); max-width:228px; ...

  9. WEB程序会话管理--HttpSession和Cookie

    WEB应用的会话管理的原理: 由于WEB应用的请求和响应是基于HTTP的,而HTTP由属于无状态的通信协议,只能记录本次请求的信息,因此服务器不会记住这一次的请求和下一次请求的关系.所以会话管理的原理 ...

  10. Uboot与Linux之间的参数传递

    U-boot会给Linux Kernel传递很多参数,如:串口,RAM,videofb等.而Linux kernel也会读取和处理这些参数.两者之间通过struct tag来传递参数. U-boot把 ...