linux 命令--date

2021-09-20, updated 2021-09-20

date命令的功能是显示和设置系统日期和时间。

date命令格式

该命令的一般格式为:

date [选项] 显示时间格式(以+开头,后面接格式) 

date 命令中各选项的含义分别为:

需要特别说明的是,只有超级用户才能用date命令设置时间,一般用户只能用date命令显示时间。

下列环境变量将会影响到 date 命令的执行效果。

使用示例一:

#date //显示当前日期
#date -s //设置当前时间,只有root权限才能设置,其他只能查看。
#date -s 20061010 //设置成20061010,这样会把具体时间设置成空00:00:00
#date -s 12:23:23 //设置具体时间,不会对日期做更改
#date -s “12:12:23 2006-10-10″ //这样可以设置全部时间

设置完系统时间后,还需要同步到硬件时钟上

# clock --systohc

硬件时钟与系统时钟同步:

# hwclock --hctosys
或者
# clock --hctosys

上面命令中,–hctosys表示Hardware Clock to SYStem clock。

系统时钟和硬件时钟同步:

# hwclock --systohc
或者
# clock --systohc

使用示例二:

用预定的格式显示当前的时间。

# date 
Fri Nov 26 15:20:18 CST 1999 

设置时间为下午14点36分。

# date -s 14:36:00 
Fri Nov 26 14:15:00 CST 1999 

设置时间为1999年11月28号。

# date -s 991128 
Sun Nov 28 00:00:00 CST 1999 

设置一天前

date --date "1 days ago" +"%Y-%m-%d"

Date 命令参数小技巧

由于Linux对man date -d 参数说的比较模糊,故举例如下:

# -d, --date=STRING  display time described by STRING, not `now'
[[email protected] ~ ]# date -d next-day +%Y%m%d
20060328
[[email protected] ~ ]# date -d last-day +%Y%m%d
20060326
[[email protected] ~ ]# date -d yesterday +%Y%m%d
20060326
[[email protected] ~ ]# date -d tomorrow +%Y%m%d
20060328
[[email protected] ~ ]# date -d last-month +%Y%m
200602
[[email protected] ~ ]# date -d next-month +%Y%m
200604
[[email protected] ~ ]# date -d next-year +%Y
2007

使用示例三:

在linux环境下要取得几天前的时期只要使用

date -d "x days ago" +%Y%m%d

x用数字代替,如果需要几天前的直接写正数,如果要几天后的日期直接写负数即可;

date -d "x weeks ago" +%Y%m%d

x用数字代替,如果需要几周前的直接写正数,如果要几周后的日期直接写负数即可;

date -d "x years ago" +%Y%m%d

x用数字代替,如果需要几年前的直接写正数,如果要几年后的日期直接写负数即可;

看下面例子:

[[email protected] ~]# date +%Y%m%d
20100107

上面是今天的日期20100107

[[email protected] ~]# date -d "2 days ago" +%Y%m%d     
20100105

上面是两天前的日期

[[email protected] ~]# date -d "4 days ago" +%Y%m%d 
20100103

上面是四天前的日期

[[email protected] ~]# date -d "-1 days ago" +%Y%m%d
20100108

上面是一天后的日期

[[email protected] ~]# date -d "-2 days ago" +%Y%m%d 
20100109

上面是两天后的日期

[[email protected] ~]# date -d "1 week ago" +%Y%m%d    
20091231

上面是一周前的日期

[[email protected] ~]# date -d "1 year ago" +%Y%m%d   
20090107

上面是一年前的日期

words: 1866 tags: date