Linux date命令
命令概述
date命令可以用来设置和显示系统当前时间,特别是在有一些Shell命令里面用到date命令来做日期的不同的显示,所以该命令也是非常需要掌握的一个命令。
语法
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
1.命令参数:
-d, --date:显示由字符串描述的日期
-f, --file:显示DATEFILE文件中的每行时间
-r, --reference:显示文件的最后修改时间
-R, --rfc-2822: 以RFC2822格式输出日期和时间
-s, --set:设置时间
-u, --utc:输出或者设置协调的通用时间
--help:帮助信息
--version版本信息
2.FORMAT
用于不同的时间格式显示方式
% H 小时(..):24小时制,01,02,03
% I 小时(..):12小时制,01,02,03
% k 小时(..):24小时制,1,2,3
% l 小时(..):12小时制,1,2,3
% M 分(..)
% p 显示出AM或PM
% r 时间(hh:mm:ss AM或PM),12小时
% s 从1970年1月1日00::00到目前经历的秒数
% S 秒(..)
% T 时间(24小时制)(hh:mm:ss)
% X 显示时间的格式(%H:%M:%S)
% Z 时区 日期域
% a 星期几的简称( Sun..Sat)
% A 星期几的全称( Sunday..Saturday)
% b 月的简称(Jan..Dec)
% B 月的全称(January..December)
% c 日期和时间( Mon Nov :: CST )
% d 一个月的第几天(..)
% D 日期(mm/dd/yy)
% h 和%b选项相同
% j 一年的第几天(..)
% m 月(..)
% w 一个星期的第几天(0代表星期天)
% W 一年的第几个星期(..,星期一为第一天)
% x 显示日期的格式(mm/dd/yy)
% y 年的最后两个数字( 1999则是99)
% Y 年(例如:,1996等)
%Y year
%z +hhmm numeric timezone (e.g., -)
%:z +hh:mm numeric timezone (e.g., -:)
%::z +hh:mm:ss numeric time zone (e.g., -::)
%:::z numeric time zone with : to necessary precision (e.g., -, +:)
%Z alphabetic time zone abbreviation (e.g., EDT)
3.示例
当前时间
#显示当前日期时间
date

显示两天前的时间
#显示两天前的时间
date -d "+2 days ago"

以%Y-%m-%d %H:%M:%S格式显示当前时间
#以%Y-%m-%d %H:%M:%S格式显示当前时间
date "+%Y-%m-%d %H:%M:%S"

以%Y-%m-%d %H:%M:%S格式显示两天前时间
#显示两天前的时间,并以%Y-%m-%d %H:%M:%S格式输出
date -d "+2 days ago" "+%Y-%m-%d %H:%M:%S"

在date命令中如果要指定其他的时间是变量,那么时间必须要用双引号否则会报错,如果直接是时间值那么可以单引号,但是建议shell里面都使用双引号
#!/bin/bash
adate=`date`
var=`date --date="$adate" +'%H:%M'`
echo $var
其它方式
#两天后
date -d "-2 days ago" +%Y%m%d
#一星期前
date -d "1 week ago" +%Y%m%d
#一星期后
date -d "-1 week ago" +%Y%m%d
#一个月前
date -d "1 month ago" +%Y%m%d
#一个月后
date -d "-1 month ago" +%Y%m%d
#一年前
date -d "1 year ago" +%Y%m%d
#下一天
date -d next-day +%Y%m%d
#前一天
date -d last-day +%Y%m%d
#前天
date -d yesterday +%Y%m%d
#明天
date -d tomorrow +%Y%m%d
#上个月
date -d last-month +%Y%m%d
#下个月
date -d next-month +%Y%m%d
#去年
date -d last-year +%Y%m%d
#明年
date -d next-year +%Y%m%d
小时(hour),分钟(minute),秒(second)的实现方法同上
4.修改系统日期和时间
只修改日期,输入:date -s 2016-03-30
只修改时间,输入:date -s 21:00:00
同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:
date -s "2016-03-30 21:00:00"
修改完后,把系统时间写入CMOS,硬件时钟,以免重启后失效,输入:
clock -w
date命令的使用技巧
--如果指定的时间是变量得必须使用双引号
var=`date --date="$2" +"%H:%M"` --如果同时指定变量和时间增量值那么两个应该放在一个双引号里面
cdate=`date -d "+10 minute $2" +%H:%M`
总结
date命令的使用技巧还有很多,这里也没有全部罗列,在shell命令里面比如做日期文件的时候经常会用到该命令,所以还需要熟练掌握。
|
备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。 《欢迎交流讨论》 |
Linux date命令的更多相关文章
- Linux date命令的用法(转)
1.命令:date 2.命令功能:date 可以用来显示或设定系统的日期与时间. 3.命令参数 -d<字符串>:显示字符串所指的日期与时间.字符串前后必须加上双引号: -s<字符串& ...
- [转帖]Linux date命令的用法(转)
Linux date命令的用法(转) https://www.cnblogs.com/asxe/p/9317811.html 1.命令:date 2.命令功能:date 可以用来显示或设定系统的日期与 ...
- Linux date命令的用法
在linux shell编程中,经常用到日期的加减运算以前都是自己通过expr函数计算,很麻烦.其实date命令本身提供了日期的加减运算非常方便. 例如:得到昨天的时间date --date=&qu ...
- 11.Linux date命令的用法
date命令常的日常应用 修改时间 date -s “2008/05/23 19:20″ 打包文件 tar zcvf log-$(date +$F).gz /home/admin/logs 同步阿 ...
- Linux date命令详解
1.显示时间 date命令可以按照指定格式显示日期,只键入date则以默认格式显示当前时间.如下: 如果需要以指定的格式显示日期,可以使用“+”开头的字符串指定其格式,详细格式如下: %n : 下一行 ...
- Linux date命令 - 显示和设置系统日期与时间
操作系统上的时间也许只是当做一个时钟.特别在控制台下, 我们通常并不认为时间有什么重要的.但是对于管理员,这种认识是错误的.你知道错误的日期和时间会导致你不能编译程序么? 因为日期和时间很重要,这或许 ...
- [linux]date命令时间戳和时间之间的转换
非常多时候我们查看数据库的数据,或者是一些别人系统中的数据须要用时间戳来查询.或者查询出来的结果是个时间戳. 还有时候,查询条件须要输入时间戳. 我之前的办法就是用在线工具来完毕,后来用mac了.我觉 ...
- Linux Date命令学习笔记
date 根据给定格式显示日期或设置系统日期时间.print or set the system date and time 指令所在路径:/bin/date 命令参数: 参数 描述 -d 显示字符串 ...
- Linux date 命令
date命令用于打印或设置系统日期和时间,常见用法如下: [root@localhost ~]# date //查看当前时间 [root@localhost ~]# date +"%Y-%m ...
随机推荐
- cassandra的写过程
如下: Message, get a new request,type:QUERY //channelRead0函数 Message, get a new request,customPay ...
- .Net 对App.config和Web.config的访问操作(增、删、读、改)
一.首先引用Configuration 1)App.config如下: using System.Configuration;//若果还没有Configuration,右键引用文件夹添加引用,在.NE ...
- 给angularJs的service建模
先回顾一下我们遇到的问题: 通过一个dialogService创建对话框,并将该service的参数数据通过resolve的方式传递给对话框的controller. controller解析数据后放置 ...
- 如何使用ajax将json传入后台数据
首先采用jquery内部封装好的方法是比较简单的,我们只需做的就是修改里面的一些配置: 对$.ajax()的解析: $.ajax({ type: "POST", //提交方式 co ...
- load与initialize
NSObject类有两种初始化方式load和initialize load + (void)load; 对于加入运行期系统的类及分类,必定会调用此方法,且仅调用一次. iOS会在应用程序启动的时候调用 ...
- LocalDB-排序规则:中文乱码; DefaultLanguage
DefaultLanguage: Set Language 简体中文|us_english SELECT SYSTEM_USER Login SP_DefaultLanguage #Login, 简体 ...
- 解决拖拽有内容的div的bug和兼容问题
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px ...
- [转]MySQL批量更新死锁案例分析
文章出处:http://blog.csdn.net/aesop_wubo/article/details/8286215 问题描述 在做项目的过程中,由于写SQL太过随意,一不小心就抛了一个死锁异常, ...
- css3 风车旋转
<style> .box{width:400px;height:400px;margin:100px auto;transition:1s;} .box div{width:180px;h ...
- iis最大工作进程数
IIS 6.0允许将应用程序池配置成一个Web园(Web Garden).要理解Web园的概念,可以设想这样一种情形:假设有一个IIS 5.0服务器和三个Web网站,每一个Web网站运行着相同的应用程 ...