技术解析
Date——显示和设置系统的当前日期和时间
利用date命令方便地显示系统日期和时间的程序,同时它还能设置系统的日期和时间。
date命令常用的选项和参数如表3-5所示。
表3-5 date命令的常用参数和选项
命令的组成 | 意义 |
-d datestr或者--date datestr | 显示由datestr描述的日期 |
-s datestr或者--set datestr | 设置由datestr描述的日期 |
-u或者--universal | 显示或设置通用时间 |
+formatstr | 按指定的formatstr字符串显示日期或者时间 |
注意:在Linux中,一个程序中功能相同的选项通常由两个表达方法,其中的一个是短的选项,通常使用一个"-"后加一个字母表示,它与Unix系统对应命令的对应选项表示方法相同,另一种表达方式被称为长选项,它通常使用"--"后加一个英文单词表示。这两种方法的功能是一样的,用户可根据习惯选用其中的一种。例如在表3-5中的第三行,选项“-u”与选项"-universal"功能完全相同。
例:使用不带参数的date命令按默认格式显示系统的当前日期和时间。
$date
一 5月 17 08:27:17 CST 2004
结果表明系统当前的日期是2004年5月17 日,星期一,当前时间为8点27分17秒。按指定的描述字符串显示日期和时间,而不是系统当前的日期和时间。
$date -d "- 5月17 08:43-18 CST 2004"
5月17 08:43:18 CST 2004
-d参数用该参数之后的字符串设置的时间。参数中的日期是2004年5月17日星期一,参数中的时间为8点43分18秒。
按特定的格式显示指定的日期和时间,举例如下:
$date -d "- 5月17 08:43:18 CST 2004" +%D
05/17/04
+%D表示按(mm/dd/yy)格式显示日期,而不显示其他信息。该倒中显示的结果为05/17/04,表示当前的月份为5月,日期为17号,年份为2004年,其中月日年分别用两位数字表示。
+formatstring指定,按+后面的fonnatstring字符串指定的格式显示日期。可用格式如表3-6所示。
表3-6 date命令中的显示格式字符串的组成元素
日期/时间 | 格式 | 意义 |
时 间 域 | %H | 小时(00~23) |
%I | 小时(01~12) | |
%k | 小时(0~23) | |
%l | 小时(1~12) | |
%M | 分(00~59) | |
%p | 显示出AM或PM | |
%r | 时间(hh:mm:ss AM或PM),12小时 | |
%s | 从1970年1月1日00:00:00到现在经历的秒数 | |
%S | 秒(00.59) | |
%T | 时间(24小时制)(hh:mm:ss) | |
%X | 显示时间的格式(%H:%M:%S) | |
%Z | 时区 | |
%a | 星期几的简称(Sun~Sat) | |
时 期 域 | %A | 星期几的全称(Sunday~Saturday) |
%b | 月的简称(Jan~Dec) | |
%B | 月的全称(January~December) | |
%c | 日期和时间(Mon Nov 8 14:12:46 CST 1999) | |
%d | 一个月的第几天(01~31) | |
%D | 日期(mm/dd/yy) | |
%h | 与%b选项等价 | |
%j | 一年的第几天(001~366) | |
%m | 月(0~12) | |
%w | 一个星期的第几天(0代表星期天) | |
%W | 一年的第几个星期(00~53,星期一为第一天) | |
%x | 显示日期的格式(mm/dd/yy) | |
%y | 年的最后两个数字(2004则是04) | |
%Y | 年(如1970,1996等) |
以“xxxx年xx月xx日xx,xx时xx分xx秒”的格式显示系统的当前时间命令如下:
$date+%Y年%m月%d日,%H时%M分%s秒
2004年05月17,05时10分12秒
将系统的时间设置成9点56秒,命令如下:
# date -s"09:00:56"
当该命令执行完成后,会显示出你设定的日期和时间。
注意:只有超级用户才有权限使用date命令设置系统日期和时间,一般用户只能使用date命令显示时间。否则会出现如下的错误提示:
date: cannot set date:不允许的操作。