date

显示或设置系统日期与时间


语法格式

date [-R] [-d str] [-f datef] [-r file] [-s str] [--rfc-3339=time] [+format]
date [-u] [MMDDhhmm[[CC]YY][.ss]]
date [--help] [--version]

命令简介

date命令用于显示或设置系统时间。利用时间格式字符串,用户可以控制时间显示的形式与内容。如果是超级用户,也可以使用date命令设置系统时间。

其中,format是时间格式的定义,用于控制时间的输出内容与形式。详见“时间格式”一节的说明。

注意,环境变量TZ定义了系统的时区,时间的显示或设置都是基于当前时区的,除非命令行另有指定。如果TZ变量未设置,命令行也未指定,则以/etc/localtime文件为准。

命令选项

-d str, --date=str  按照指定的时间描述字符串(如yesterday、tomorrow或“next Sunday”等)或者时间格式字符串(如“2012-01-22 10:20:30”或“Sun, 22 Jan 2010 16:21:42 +0800”)显示时间。注意,这里的具体数字并不重要,重要的只是时间的格式与含有的时间元素,最终显示的还是当前时间。

-f datef, --file=datef  从指定的文件中逐行读取时间描述字符串或时间格式字符串,作为“-d”选项的参数,按照要求显示时间。文件可以包含多行字符串,定义多个时间显示形式。

-r file, --reference=file  显示指定文件最近一次的修改时间。

-R, --rfc-2822  以RFC 2822定义的格式显示日期和时间,如“Sun, 22 Jan 2010 12:34:56 +0800”。

-s str, --set=str  按照指定的时间格式设置时间,例如,使用“[cc]yy-mm-dd”、“[cc]yymmdd”或“[cc]yy/mm/dd”等设置日期,使用“hh:mm[:ss]” 等设置时间。也可以组合在一起,同时设置日期与时间,如“[cc]yy-mm-dd hh:mm”。注意,组合设置日期与时间时,前后需要加引号。

-u, --utc, --universal  显示或设置协调世界时(UTC),即格林威治时间(GMT)。

--rfc-3339=time  以RFC 3339定义的格式显示日期和时间。其中的时间参数可以是date(仅显示日期)、seconds(显示日期、时间与时区)或ns(同seconds,但在秒后增加时间精度)。

时间格式

时间格式可由下列特殊字符及其任意组合组成:

%%  百分号“%”文字本身。

%n  换行符。

%t  制表符。

%a  本地语言环境的星期缩写,如Sun或日。

%A  本地语言环境的星期全称,如Sunday或星期日。

%b  本地语言环境的月份缩写,如Jan。

%B  本地语言环境的月份全称,如January或一月。

%c  本地语言环境的日期与时间,如“Sun Jan 22 23:05:25 2010”或“2012年01月15日 星期日 21时43分30秒”。

%C  世纪。类似于“%Y”,忽略最后两位数字,如20。

%d  一月中的第几天。

%D  日期,相当于“%m/%d/%y”。

%e  一月中的第几天。相当于“%_d”,即使用空格替代前置0。

%F  完整的日期表示,相当于“%Y-%m-%d”。

%g  ISO标准的年份最后两位数字,通常与“%V”一起使用。

%G  ISO标准的年份,通常与“%V”一起使用。

%h  相当于“%b”,显示月份的缩写。

%H  24小时制(0~23)的小时。

%I  12小时制(1~12)的小时。

%j  一年中的第几天(001~366)。

%k  24小时制(0~23)的小时。

%l  12小时制(1~12)的小时。

%m  月(1~12)。

%M  分(00~59)。

%N  毫微秒(000000000~999999999)。

%p  本地语言环境的上下午表示,如AM、PM、上午或下午等。

%P  类似于“%p”,但采用小写字母。

%r  本地语言环境的12小时制时钟时间,如“11:11:04 PM”,或“下午 09时29分30秒”。

%R  24小时制的小时与分,相当于“%H:%M”。

%s  从UNIX纪元(1970-01-01 00:00:00 UTC)算起的秒数。

%S  秒(00~60)。

%T  时间,相当于“%H:%M:%S”。

%u  周(1~7),其中7表示星期日。

%U  一年中的第几周(00~53),其中星期日作为每周的第一天。

%V  ISO标准的第几周(01~53),其中星期一作为每周的第一天。

%w  周(0~6),其中0表示星期日。

%W  一年中的第几周(00~53),其中星期一作为每周的第一天。

%x  本地语言环境的日期表示,如“01/15/12”或“2012年01月15日”。

%X  本地语言环境的时间表示,如“21:26:06”或“21时26分06秒”。

%y  年份的最后两位数字(00~99),如12。

%Y  年,如2012。

%z  数字形式“+hhmm”表示的时区,如“+0800”。

%:z  数字形式“+hh:mm”表示的时区,如“+08:00”。

%::z  数字形式“+hh:mm:ss”表示的时区,如“+08:00:00”。

%:::z  数字形式的时区,增加必要的精度,如+08或+05:30等。

%Z  时区的英文缩写,如CST。

通常,日期或时间的数值字段可能会包含前置0。为了控制显示前置0与否,可在上述特殊字符中插入下列字符标志:

-(连字符)  禁止填充字段。

_(下画线)  使用空格填充字段。

0(数字0)  使用0填充字段。

^(上箭头)  尽可能使用大写字母。

#(井号)  尽可能使用小写字母。

应用实例

1. 设置系统时间。

# date -s "20120405 10:20"
Thu Apr  5 10:20:00 CST 2012
#

2. 使用格式字符串,模拟实现date命令显示的系统时间。

$ date "+%x %A %T %Z"
2012年04月05日 星期四 10:30:30 CST
$

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z