linuxcmd/ target=_blank class=infotextkey>linux命令之date命令功能:
一是显示当前日期和时间,包括格式化显示当前系统的日期和时间。
二是修改系统的日期和时间。
功能1:显示系统日期
date命令显示:
root@jb200.com:~# date
Tue Jun 19 01:55:35 UTC 2012
UTC是时区,2012年6月19日1点55分35秒,星期二。
date的参数用法
注意,参数之前带的是加号(+),减号的话肯定不行。
root@jb200.com:~# date +%Y/%m/%d
2012/06/19
root@jb200.com:~# date +%Yy%mm%dd
2012y06m19d
root@jb200.com:~# date +%H:%M
01:59
当然可以把年月日和时分秒联系起来一起显示:
root@jb200.com:~# date +"%Y-%m-%d %H:%M:%S"
2012-06-19 02:05:19
注意双引号必须保留,不然中间的格式化语句的空格不能出现。
其实linux上date还可以显示其他日期,而不是局限在当前日期
例子:
root@jb200.com:~# date -d today +"%Y-%m-%d %H:%M:%S"
2012-06-19 02:09:39
root@jb200.com:~# date -d yesterday +"%Y-%m-%d %H:%M:%S"
2012-06-18 02:09:51
root@jb200.com:~# date -d tomorrow +"%Y-%m-%d %H:%M:%S"
2012-06-20 02:09:59
上例分别显示了当前,昨天今天和明天的日期,不过貌似没有什么大的用处。
命令:
root@www.jb200.com:~# date -d "+1 day" +"%Y-%m-%d %H:%M:%S"
2012-06-20 02:12:26
root@www.jb200.com:~# date -d "+2 day" +"%Y-%m-%d %H:%M:%S"
2012-06-21 02:12:33
root@www.jb200.com:~# date -d "-1 day" +"%Y-%m-%d %H:%M:%S"
2012-06-18 02:12:43
root@www.jb200.com:~# date -d "-2 day" +"%Y-%m-%d %H:%M:%S"
2012-06-17 02:12:49
root@www.jb200.com:~# date -d "+1 month" +"%Y-%m-%d %H:%M:%S"
2012-07-19 02:13:02
root@www.jb200.com:~# date -d "-1 month" +"%Y-%m-%d %H:%M:%S"
2012-05-19 02:13:08
root@www.jb200.com:~# date -d "+1 year" +"%Y-%m-%d %H:%M:%S"
2013-06-19 02:13:17
root@www.jb200.com:~# date -d "-1 year" +"%Y-%m-%d %H:%M:%S"
2011-06-19 02:13:22
root@www.jb200.com:~# date -d "+1 hour" +"%Y-%m-%d %H:%M:%S"
2012-06-19 03:14:03
root@www.jb200.com:~# date -d "+1 minute" +"%Y-%m-%d %H:%M:%S"
2012-06-19 02:15:17
root@www.jb200.com:~# date -d "+1 second" +"%Y-%m-%d %H:%M:%S"
2012-06-19 02:14:29
解释:
利用-d参数显示前一天后一天,前一个月后一个月,前一年后一年,甚至是前一小时后一小时,前一分钟后一分钟,前一秒钟后一秒钟的详细日期。
功能2:修改系统日期个时间
要修改系统时间,需要使用date -s参数,其实很简单,但是需要root管理员才能设置系统日期,其他用户只能查看系统日期。
以下命令是修改系统日期为指定的2012年5月17日
date -s 20120517 注意,这样的话会把时间设置为:00:00:00。
例子:
root@www.jb200.com:~# date -s 2012-05-17
Thu May 17 00:00:00 UTC 2012
root@www.jb200.com:~# date -s 20120517
Thu May 17 00:00:00 UTC 2012
root@www.jb200.com:~# date -s 05/17/2012
Thu May 17 00:00:00 UTC 2012
以上三种日期格式都可以。
修改时间基本类似,使用date -s 02:28:00就可以,这个命令的好处是不修改日期,只修改时间。
root@www.jb200.com:~# date -s 02:28:00
Thu May 17 02:28:00 UTC 2012
以下linux命令演示了linux上date命令完整的修改日期和时间的例子,注意双引号不能省略
root@www.jb200.com:~# date -s "02:30:00 2012-06-19"
Tue Jun 19 02:30:00 UTC 2012
如何修改时区?
需要更改/etc/sysconfig/clock文件,修改为:
ZONE="Asia/Shanghai"
修改完成,需要把系统时间同步到硬件时钟,格式:
hwclock --systohc
同理,把硬件时钟同步到系统时钟:
hwclock --hctosys