date 命令
用途
显示或者设置日期或时间。
语法
要以 root 用户身份设置日期和时间,请输入:
/usr/bin/date [-n] [-u] [日期] [+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 | 指定年份的前 2 个数字。 注: 如果不指定年份的前两位数,70 - 99 范围内的数值指的是 20 世纪,1970 - 1999(含)。 类似地,范围 00 到 37 中的值指的是 21 世纪中的年份,包括 2000 年到 2037 年。
|
| yy | 指定年份的后 2 个数字。 注: date 命令接受 4 数字年份作为输入。 例如,如果指定了由 4 个数字组成的年份,那么
date 命令会尝试按照 YYyy 格式设置该年份,并且对于超出范围(小于 1970 年和大于
2105 年)的值,该命令会失败。 对于范围 2038 到 2105 中的年份,请采用 yyyy 格式指定该年份。
|
若没有指定年份,当前的年份将作为缺省值使用。 系统按照全球标准时间 (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) 显示一年中的日期。 |
| %k | 以右对齐、空格填充的数字(0 到 23)显示 24 小时制时钟的读数。 |
| %m | 以十进制数 (01-12) 显示一年中的月份。 |
| %M | 以十进制数 (00-59) 显示分钟。 |
| %n | 插入一个换行符。 |
| %p | 显示语言环境中 AM 或 PM 的等价物。 |
| %r | 使用 AM-PM 符号表示法显示 12 小时制时间 (01-12);在 POSIX 语言环境中,它等同于 %I:%M:%S %p。 |
| %S | 以十进制数(00 到 59)显示秒数。 |
| %s | 显示从全球标准时间 (CUT) 1970 年 1 月 1 日起的秒数。 |
| %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 字段描述符以指示不同的格式或规范,如 Files Reference中的 Locale Definition Source File Format 的 LC_TIME Category 中所述。 如果当前语言环境未指定或不支持相应的关键字 (请参阅 era, era_year, era_d_fmt和 alt_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 | 发生错误。 |
安全性
示例
- 要显示当前日期和时间,请输入:
date - 要设置日期和时间,请输入:
对于使用 CST 作为其时区的系统,此命令将日期和时间设置为如下:CST 1990 年 2 月 17 日 14:25:00 星期六。date 0217142590注: 您必须具有更改日期和时间的 root 用户权限。 - 要以指定的格式显示日期和时间,请输入:
此命令会显示在示例 2 中显示的日期,如下所示:date +"%r %a %d %h %y (Julian Date: %j)"02:25:03 PM Fri 17 Feb 90 (Julian Date: 048)
环境变量
以下环境变量将会影响到 date 命令的执行效果。
| 项 | 描述 |
|---|---|
| LAN | 确定在 LC_ALL 和相应的环境变量(以 LC_ 开头)都不指定语言环境的时候将要使用的缺省语言环境。 |
| LC_ALL | 确定要用于覆盖由 LANG 或任何以 LC_ 开头的环境变量设置指定的任何语言环境类别值的语言环境。 |
| LC_CTYPE | 确定文本数据的字节序列解释为字符时使用的语言环境(例如参数中单对多字节字符)。 |
| LC_MESSAGES | 确定要用于编写消息的语言。 |
| LC_TIME | 确定由 date 命令写入的日期和时间字符串的内容。 |
| NLSPATH | 为处理 LC_MESSAGES 确定消息目录的位置。 |
| TZ | 指定写入时间和日期时采用的时区,除非指定了 -u 标志。 如果未设置 TZ 变量且未指定 -u 标志,那么使用非指定的系统缺省时区。 |