【引用】Linux date命令

和大家分享这篇日志,我的看法是:

 
原文地址:Linux date命令&nb    原文作者:Davis

date命令
 

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

该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式)
 

date 设置时间格式
 

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

-d datestr, --date datestr 显示由datestr描述的日期
 

-s datestr, --set datestr 设置datestr 描述的日期
 

-u, --universal 显示或设置通用时间
 

时间域
 

% H 小时(00..23
 

% I 小时(01..12
 

% k 小时(0..23
 

% l 小时(1..12
 

% M 分(00..59
 

% p 显示出AMPM
 

% r 时间(hhmmss AMPM),12小时
 

% s 197011000000到目前经历的秒数
 

% 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 141246 CST 1999
 

% d 一个月的第几天(01..31
 

% D 日期(mmddyy
 

% h %b选项相同
 

% j 一年的第几天(001..366
 

% m 月(01..12
 

% w 一个星期的第几天(0代表星期天)
 

% W 一年的第几个星期(00..53,星期一为第一天)
 

% x 显示日期的格式(mm/dd/yy
 

% y 年的最后两个数字( 1999则是99
 

% Y 年(例如:19701996等)
 

注意:只有超级用户才有权限使用date命令设置时间,一般用户只能使用date命令显示时间。
 

?        显示日期和时间
 

在字符界面下,除了可以显示年月之外,用户还可以使用“date”命令的功能是显示和设置系统日期和时间。需要特别说明的是,只有超级用户才能用“date”命令设置时间,一般用户只能用“date”命令显示时间。
 

用指定的格式显示时间,命令如下:
 

      
 

# date '+The date of today is%x it is%X ' 
 

The date of today is14/04/04 it is10:33:01
 
 
 

其中% x 显示日期的格式(mm/dd/yy),% X 显示时间的格式(%H:M:S)。
 

其它参数可查看上面的date时间域的设置。
 

?        设置时间为上午916
 

命令如下:
 

# date -s 09:16:00
 
 

?        设置时间为2004414
 

命令如下:
 

# date -s 991128
 
 

 其中-s是设置日期的参数。
 

    另外,“date”命令还有许多有用的参数,能够帮助用户随心所欲地设定和显示时间,例如%H显示小时(00..23)、%M显示分(00..59)、%p显示出AMPM%S显示秒(00..59)和%Z显示时区等。熟能生巧,经常将这些命令参数运用起来,相信会有更多意想不到的精彩等着大家。

获得当天的日期格式

date_str=`date '+%Y%m%d'`

date 命令

用途

显示或者设置日期或时间。

语法

作为 root 用户设置时间和日期


/usr/bin/date [ -n ] [ -u ] [  Date ] [ +FieldDescriptor ...

显示日期和时间


/usr/bin/date [ -u ] [ +FieldDescriptor ... ]

作为 root 用户以秒为单位调节时间


/usr/bin/date [ -a ][ + | - ]sss[.fff ]

描述

注意: 当系统正有一个以上的用户在运行时请勿更改日期。

如果不带标志调用或者以 +(加号)开头的标志列表进行调用,date 命令将当前的日期和时间写到标准的输出。否则,它将设置当前的日期。只有 root 用户能够更改时间和日期。遇到任何不认识的标志或输入时,date 命令将打印输出使用消息。

当以 Date 参数设置日期时,可以使用以下格式:

  • mmddHHMM[YYyy]
  • mmddHHMM[yy]

Date 参数的变量定义如下:

mm 表示月份数。
dd 表示月份中的天数。
HH 表示一天中的小时数(使用 24 小时制)。
MM 表示分钟数。
YY 表示年份的头两个数字。
注:
如果您没有指定年份的头两个数字,取值范围从 69 到 99,指的是 20 世纪,包括 1969 年到 1999 年,取值范围从 00 到 68 指的是 21 世纪,包括 2000 年到 2068 年。
yy 表示年份的后两个数字。
注:
date 命令接受 4 个数字的年份的输入。例如,如果指定了 4 个数字的年份,date 命令将会尝试按照“YYyy”设置年份,如果数值超出了范围(小于 1970 年和大于 2037 年)则会造成设置失败。

若没有指定年份,当前的年份将作为缺省值使用。系统按照全球标准时间(CUT)操作。

如果您在 date 命令后加上 +(加号)和一个字段描述符,您可以控制命令的输出。您必须在每个描述符之前加上一个 %(百分号)。系统用指定的值替换字段描述符。输入一个文字 % 作为 %%(两个百分号)。date 命令复制任何其它的字符到输出中而不加更改。date 命令始终以换行符作为字符串的结尾。

标志


 

-a [ + | - ]sss[.fff ] 缓慢调整时间 sss.fff 秒(fff 代表秒片断)。该调整可以是正向或负向的。系统时钟将会加快或者减慢直到它走到指定的秒数。
n 请勿在时钟同步的局域网内的所有机器上设置全局时间。
-u 按照全球标准时间(CUT)显示或者设置时间。

字段描述符


 

%a 显示语言环境的简略周日名称。
%A 显示语言环境的完整周日名称。
%b 显示语言环境的简略月份名称。
%B 显示语言环境的完整月份名称。
%c 显示语言环境适当的日期和时间表示。此为缺省值。
%C 按十进制数(00-99)显示四个数字代表的年份的前两个数字。一年除以 100 并且只取整数部分。
%d 按照十进制数显示月份中的日期(01-31)。在两个数字的字段,0 表示前导空间填充。
%D 按照等同于 %m/%d/%y 的格式显示日期。
%e 按照十进制数显示月份中的日期(1-31)。在两个数字的字段,空白空间用作前导空格填充。
%h 显示语言环境的简略月份名称(%b 的同义词)。
%H 以十进制数(00-23)显示小时(24 小时制)。
%I 用十进制数(01-12)显示小时(12 小时制)。
%j 以十进制数(001-366)显示一年中的日期。
%m 以十进制数(01-12)显示一年中的月份。
%M 以十进制数(00-59)显示分钟。
%n 插入 <换行> 字符。
%p 显示语言环境中 AM 或者 PM 的等价物。
%r 使用 AM-PM 符号显示 12 小时制(01-12);在 POSIX 语言环境中这个等同于 %I:%M:%S %p
%S 以十进制数(00-59)显示秒。
%t 插入 <tab> 字符。
%T 显示 24 小时制(00-23),按照等同于 HH:MM:SS 的格式。
%u 按照十进制数从 1 到 7 显示周日(星期天 = 7)。请参考 %w 字段描述符。
%U 按照十进制数 [00 - 53] 显示一年中的每一周(星期天是一周的第一天)。新的一年中第一个星期天之前的所有天数都认为属于第 0 周。
%V 按照十进制数从 01 到 53 显示一年中的每一周(星期一是一周的第一天)。如果包含 1 月 1 日的那一周有四天或超过四天在新的一年,那么认为这一周是第 01 周;否则认为是前一年的第 53 周。
%w 按照十进制从 0 到 6 显示周日(星期天 = 0)。参见 %u 的字段描述符。
%W 按照十进制以星期一作为一周的第一天来显示一年中的周数(00-53)。
%x 显示语言环境的适当的日期的表示。
%X 显示语言环境的适当的时间的表示。
%y 显示年份的最后两个数字(00-99)。
%Y 按照十进制以四个数字显示年份。
%Z 显示时区名称,或者如果没有指定时区则没有字符。
%% 显示一个 %(百分号)字符。

修改的字段描述符

可以修改 %E%O 字段描述符来指出不同的格式或说明,按照 AIX 5L Version 5.2 Files Reference 中的 Locale Definition Source File Format 的 LC_TIME Category 中描述的那样。如果没有指定对应的关键字(请参阅 eraera_yearera_d_fmtalt_digits 关键字),或者当前语言环境不支持,则使用没有修改的字段描述符的值。

%Ec 显示语言环境的适当备用日期和时间表示。
%EC 在语言环境的备用表示中显示基准年份名(或者其它时间周期)。
%Ex 显示语言环境的备用日期表示。
%EX 显示语言环境的备用时间表示。
%Ey 在语言环境的备用表示中显示 %EC 字段描述符的偏移量(只针对年)。
%EY 显示完整的备用年份表示。
%Od 使用语言环境的备用数字符号显示月份中的日期。
%Oe 使用语言环境的备用数字符号显示月份中的日期。
%OH 用语言环境的备用数字符号显示小时(24 小时制)。
%OI 用语言环境的备用数字符号显示小时(12 小时制)。
%Om 使用语言环境的备用数字符号显示月份。
%OM 使用语言环境的备用数字符号显示分钟。
%OS 使用语言环境的备用数字符号显示秒。
%Ou 使用语言环境的备用表示以数字显示周日(星期一 = 1)。
%OU 使用语言环境的备用数字符号显示一年当中的周号。星期天认为是一周中的第一天。
%OV 使用语言环境可供选择的数字符号显示一年当中的周号。星期一认为是一周中的第一天。
%Ow 使用语言环境的备用表示以数字显示周日(星期天 = 0)。
%OW 使用语言环境的备用数字符号显示一年当中的周号。星期一认为是一周中的第一天。
%Oy 使用备用表示显示年份(%C 的偏移量)。

退出状态

此命令返回下列退出值:

0 该日期已经成功写入。
>0 发生错误。

示例

  1. 要显示当前的日期和时间,请输入:
     
      date  
  2. 要设置日期和时间,请输入:
     
      date 0217142590   

    对于使用 CST 时区的系统,这项输入设置日期和时间为:CST 1990 年 2 月 17 日 14:25:00 星期六。

    注意:您必须拥有 root 用户权限才能更改日期和时间。

  3. 要按照指定的格式显示日期和时间,请输入:
     
      date +"%r %a %d %h %y(儒略日期:%j)"  

    示例 2 中显示的日期显示如下:

      02:25:03 PM Fri 17 Feb 90(儒略日期:048)  

环境变量

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

LANG 确定在 LC_ALL 和相应的环境变量(以 LC_ 开头)都不指定语言环境的时候将要使用的缺省语言环境。
LC_ALL 确定用于覆盖由 LANG 或任何以 LC_ 开头的环境变量设置的任何语言环境类别值的语言环境。
LC_CTYPE 确定文本数据的字节序列解释为字符时使用的语言环境(例如参数中单对多字节字符)。
LC_MESSAGES 决定写信息应使用的语言。
LC_TIME 确定由 date 写入的日期和时间字符串的内容。
NLSPATH 为处理 LC_MESSAGES 决定消息目录的位置。
TZ 指定时间和日期使用的时区,除非指定了 -u 选项。如果未设置 TZ 变量且未指定 -u 标志,则使用非指定的系统缺省时区。
posted @ 2010-12-22 10:39  thunderhao  阅读(152)  评论(0编辑  收藏  举报