1、man手册


1.1、调用格式


  date [选项] ... [+格式]


  date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]


 


1.2、功能


    按格式显示时间或设置系统时间。


 


1.3、选项





-d--date=STRING 显示STRING指示的时间,STRING是比较随性的可读的字符串,比如说“2012-06-16 18:31:00”或者“next Thursday”,这个字符串通常包含日历时间、时间、星期、日期、相对时间,相对日期或者数字。 -f--file=DATEFILE     和-d类似,对文件DATEFILE里的每一行做date -d操作 -ITIMESPEC--iso-8601[=TIMESPEC]以ISO 8601格式显示时间/日期。TIMESPEC=`date'只显示日期, `hours', `minutes', or `seconds'显示相应的精度.  --iso-8601不带TIMESPEC时等同于`date'. -r--reference=FILE 显示文件FILE最后修改的时间 -R--rfc-822 输出与RFC-822相适应的时间字符串 -s--set=STRING 设置STRING指定的时间 -u--utc--universal 输出或者设置UTC时间 --help 显示命令帮助 --version 输出版本信息


1.4、格式



格式



说明



实例



%a



缩写的星期名



Thu



%A



全星期名



Thursday



%b



缩写的月名



Aug



%B



全月名



August



%c



日期和时间



Thu Aug 23 14:55:02 2001



%C



年/100 [00,99]



20



%d



十进制表示的每月的第几天 [01,31]



16



%D



月/天/年 [m%/d%/y%]



06/16/12



%e



十进制表示的每月的第几天 ,一位数前加空格[1,31]



10



%F



年-月-日 [Y%-m%-d%]



2012-06-16



%g



ISO 8601使用基于周的年的后两位数字 



12



%G



ISO 8601使用基于周的年



2012



%h



简写的月份名 ,与%b相同



Aug



%H



24小时制的小时 [00,23]



14



%I



12小时制的小时 [01,12]



02



%j



每年的第几天 [001,366]



235



%k



24小时制的小时 [0,23]



5



%l



12小时制的小时 [1,12]



5



%m



十进制的月 [01,12]



08



%M



分钟 [00,59]



55



%n



换行符


 


%N



十亿分之一秒,纳秒 [000000000,999999999]



000000001



%p



AM/PM 



PM



%P



am/pm



pm



%r



本地时间:(12时制)



11:01:23 AM



%R



与“%H:%M”相同



11:01



%s



自'00:00:00 1970-01-01 UTC' 的秒数



1339819819



%S



秒 [00,60]



02



%t



水平制表符


 


%T



与“%H:%M:%S”相同



11:01:23



%u



ISO 8601的星期,星期一为1,[1,7]



2



%U



周数 ,以周日为一周开始 [00,53]



33



%V



ISO 8601周数 [01,53]



07



%w



星期,星期天为0. [0,6]



4



%W



周数,以星期一为一周开始 [00,53]



34



%x



标准日期



06/16/12



%X



标准时间



14:55:02



%y



年份的后两位数字 [00,99]



12



%Y





2012



%z



ISO 8601格式的UTC偏移量



-0500



%Z



时区名



EST



%%



百分号



%



若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数


 


2、举例


date                       # 以默认格式显示当前日期

date -d "1 day"            # 以默认格式显示一天后的日期(还可以 second,minute,..直到year,可以加s表示复数)

date -d "1970-01-01 UTC 1128621784 seconds"    # 以默认格式显示从1970-01-01 UTC起后1128621784秒的日期

date -d "3 day ago" +%Y%m%d    # 以指定格式显示3天前的日期

date -d "1 month" +%Y-%m-%d    # 以指定格式显示一个月后的日期

date -d "1 month" +%s          # 以指定格式显示一个月后的日期(此格式为从1970年1月1日00:00:00到目前经历的秒数,%S为当前的秒数(0~59))

date -d "1970-01-01 CST 1 second" +%s   # 显示从1970-01-01 CST起1秒后的秒数(-28799,注意时区"CST")

date -d "2 hours"                # 2小时前

date -d "1 minutes"             # 1分钟前

date -d "2 seconds"             # 2秒钟前


date -d "20120616" +%s          # 以指定格式显示日期


将时间戳转换成date

#date -d '1970-01-01 UTC 1199116800 seconds'

2008年 01月 01日 星期二 00:00:00 CST


#export LANG=en

#date -d '19700101 UTC 1199116800 seconds'  

Tue Jan  1 00:00:00 CST 2008mi 


 


原文链接​​http://hi.baidu.com/toyou234/item/7d51a9db00b808e154347fbe​

date实用举例:

#显示时区

[cnscn@root /home/cnscn/backup]# date +%Z

CST


#显示世纪

[cnscn@root /home/cnscn/backup]# date +%C

20

====================设置===========================


#设置时间为: 2005年02月22日09:10:46

[cnscn@root /home/cnscn/backup]# date 022209102005.46           #月 日 时 分 年. 秒

二  2月22 09:10:46 CST 2005



#[cnscn@root /home/cnscn/backup]# date -s "+3 hours"                #将时间增加3小时

二  2月22 09:46:14 CST 2005



#[cnscn@root /home/cnscn/backup]# date -s "-40 minutes"            #将时间减少40分钟

二  2月22 09:06:35 CST 2005



#[cnscn@root /home/cnscn/backup]# date -s  "+1 year"                #时间增加1年

三  2月22 09:14:55 CST 2006



#[cnscn@root /home/cnscn/backup]# date -s  "-1 year"                 #时间减少一年

二  2月22 09:15:02 CST 2005



======================按日期显示============================

[cnscn@root /home/cnscn/backup]# date -d  "+1 year"

三  2月22 09:57:46 CST 2006



[cnscn@root /home/cnscn/backup]# date -d "-1 month"

六  1月22 09:49:08 CST 2005


[cnscn@root /home/cnscn/backup]# date -d "-1 month" +%s

1106358557



#[cnscn@root /home/cnscn/backup]# date -d "7 days ago"           #显示7天前的时间

二  2月15 09:16:09 CST 2005



#[cnscn@root /home/cnscn/backup]# date -d "7 days ago"  +%s   #显示7天前时间的秒值

1108430178



#[cnscn@root /home/cnscn/backup]# date -d "7 days"                #显示7天后时间的秒值

二  3月  1 09:17:11 CST 2005



#[cnscn@root /home/cnscn/backup]# date -d "7 days"  +%s        #显示7天后时间的秒值

1109639824


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



#显示当前系统时间和日期

$date



#完整的日期时间显示

[cnscn@root /home/cnscn/backup]# date +%c

2005年02月22日  星期二  09时32分19秒



#以格林威治标准时间显示目前时间和日期

[cnscn@root /home/cnscn/backup]# date -u

二  2月22 01:38:20 UTC 2005


#以当地习惯显示日期

[cnscn@root /home/cnscn/backup]# date +%x

2005年02月22日



#以mm/dd/yy格式显示系统日期

[cnscn@root /home/cnscn/backup]# date +%D

02/22/05



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

#英文全称月份

[cnscn@root /home/cnscn/backup]# date +%B

二月


#英文缩写月份

[cnscn@root /home/cnscn/backup]# date +%b

2月

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


#今年第几天

[cnscn@root /home/cnscn/backup]# date +%j

053


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


#时:分:秒

[cnscn@root /home/cnscn/backup]# date +%T09:24:07



#加上AM与PM

[cnscn@root /home/cnscn/backup]# date +%T%p

09:24:07上午



[cnscn@root /home/cnscn/backup]# date +%r

09:34:44 上午


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

#周几

[cnscn@root /home/cnscn/backup]# date +%w

2


#本地格式周几全称

[cnscn@root /home/cnscn/backup]# date +%A

星期二


#本地格式周几缩写

[cnscn@root /home/cnscn/backup]# date +%a


#今年第几周

[cnscn@root /home/cnscn/backup]# date +%U

08

1)把时间转成秒

  $date -d  "20061206 07:08" +%s

    1165360080


2)把秒转换成时间

   $ date

     2006年07月06日 星期四11:57:18 CST


   $ date -d "now" +%s

     1152158238

   $ date -d "19700101  1152158238 seconds UTC"

     2006年07月06日 星期四11:57:18 CST

   $ date -d "@1152158238"