一、当前时间的处理
1)显示年-月-日
[root@localhost ~]# date +%F
2014-07-11
2)显示年-月-日以及小时,分,秒
[root@localhost ~]# date "+%Y-%m-%d %H:%M:%S"
2014-07-11 23:39:42
或者
[root@localhost ~]# date "+%Y年%m月%d日%X"
2014年07月11日23时55分08秒
3)显示月份和星期
[root@localhost ~]# date +%B
七月
[root@localhost ~]# date +%b
7月
[root@localhost ~]# date +%A
星期五
4)显示从1970年1月1日00:00:00 UTC 到目前的秒数(时间戳)
[root@localhost ~]# date +%s
1405093416
二、未来或者以前的时间处理
5)2天后现在这个时刻的时间
[root@localhost ~]# date -d "+2 day"
2014年 07月 13日 星期日 23:46:05 CST
6)2天前现在这个时刻的时间
[root@localhost ~]# date -d "-2 day"
2014年 07月 09日 星期三 23:47:33 CST
说明:除了天(day)以外,还可以是年(year)、月(month)、时(hour)、分(minute)、秒(second)等。
7)显示当前月的第一天
[root@localhost ~]# date -d `date +%Y%m01`
2014年 07月 01日 星期二 00:00:00 CST
8)显示当月最后一天
[root@localhost ~]# date -d `date +%Y%m01`"+1 month""-1 day"
2014年 07月 31日 星期四 00:00:00 CST
9)显示上个月第一天
[root@localhost ~]# date -d `date +%Y%m01`"-1 month"
2014年 06月 01日 星期日 00:00:00 CST
10)显示上个月最后一天
[root@localhost ~]# date -d `date +%Y%m01`"-1 day"
2014年 06月 30日 星期一 00:00:00 CST
三、时间的修改
11)在并不要求高精度的情况下,修改现在的时间,格式 date 月日时分年
[root@localhost ~]# date 101112002014
2014年 10月 11日 星期六 12:00:00 CST
12)查看硬件时钟时间,并与其同步
[root@localhost ~]# date
2014年 10月 11日 星期六 12:01:32 CST
[root@localhost ~]# hwclock
2014年07月12日 星期六 00时34分52秒 -0.266738 seconds
[root@localhost ~]# hwclock -s
[root@localhost ~]# date
2014年 07月 12日 星期六 00:35:33 CST
13)与网络时间保持一致,不保证一定能用,不过现在我能用,哈哈,目前已经做个计划任务,不断测试中......
rdate -s time-b.nist.gov
四、Linux戳与时间互换
14)查看当前时间戳
[root@localhost ~]# date +%s
1405098502
15)查看指定时间时间戳
[root@localhost ~]# date -d "2014-10-01" +%s
1412092800
16)时间戳转换为时间,格式 date -d "1970-01-01 UTC 时间戳 seconds"
[root@localhost ~]# date -d "1970-01-01 UTC 1412092800 seconds"
2014年 10月 01日 星期三 00:00:00 CST
五、计算两个日期的差
2014年5月1日与2013年5月1日相差多少天呢?
d1=$(date +%s -d 20140501)
d2=$(date +%s -d 20130501)
echo $(((d1-d2)/86400))
365