/usr/bin/date [-u] [+ format]
/usr/bin/date [-a [-] sss.fff]
/usr/bin/date [-u] [ [ mmdd] HHMM | mmddHHMM [ cc] yy] [.SS]
/usr/xpg4/bin/date [-u] [+ format]
/usr/xpg4/bin/date [-a [-] sss.fff]
/usr/xpg4/bin/date [-u] [ [mmdd] HHMM | mmddHHMM [cc] yy] [ .SS]
date 实用程序将日期和时间写入到标准输出,或者尝试设置系统日期和时间。缺省情况下,将写入当前日期和时间。
支持指定月份和工作日名称的本机语言转换。用于某种语言的月份和工作日名称基于由环境变量 LC_TIME 指定的语言环境。请参见 environ(5)。
下面是 C 语言环境的缺省形式:
%a %b %e %T %Z %Y
例如,
Fri Dec 23 10:10:42 EST 1988
支持以下选项:
将时间少量调整 sss. fff 秒(fff 表示一秒的几分之一)。此调整可以为正,也可以为负。系统的时钟将加快或变慢,直到改变了所指定的秒数。只有超级用户可以调整时间。
以格林威治标准时间(GMT 通用时间)显示(或设置)日期,绕过通常会执行的与本地时间之间的转换。
支持下列操作数:
如果参数以 + 开头,则 date 的输出是将 format 和当前时间传递给 strftime() 得到的结果。date 使用 strftime(3C) 手册页上列出的转换规范,并根据使用的是 /usr/bin/date 还是 /usr/xpg4/bin/date 确定针对 %C 的转换规范:
语言环境的日期和时间表示形式。这是 date 的缺省输出。
世纪(年份除以 100 并截断到整数),采用十进制数字形式 [00-99]。
此外,date 支持 %N,%N 将自新纪元(1970 年 1 月 1 日 00:00:00 UTC)算起的当前时间的纳秒部分表示为一个十进制数字 [000000000-999999999]。转换规范可以接受一个可选的标志字符、一个可选的字段宽度,或者同时接受两者(与在 strftime() 中规定一样),但有以下差异:如果指定的字段宽度小于 9,则实际的日期输出将仅包含指定的纳秒数位(从左端算起)。
字符串始终以 NEWLINE 终止。包含空格的参数必须用引号括起来,请参见“示例”部分。
月份数
月中的天数
小时数(24 小时系统)
分钟数
秒数
世纪(年份除以 100 并截断到整数),采用十进制数字形式 [00-99]。例如,对于 1988 年,cc 是 19,对于 2007 年,它是 20。
年数的最后两位数。如果未指定世纪 (cc),则范围 69–99 中的值指的应当是从 1969 年到 1999 年(包含),范围 00–68 中的值指的应当是从 2000 年到 2068 年(包含)。
月份、天、年份数和世纪可以省略;当前值将应用为缺省值。例如,以下条目:
example% date 10080045
将日期设置为 10 月 8 日 上午 12:45。缺省年份是当前年份,因为未提供年份。系统以 GMT 执行运算。date 会执行与本地标准时间和夏时制时间之间的转换。只有超级用户可以更改日期。在成功设置日期和时间后,date 将根据缺省格式显示新日期。date 命令使用 TZ 来确定正确的时区信息;请参见 environ(5)。
以下命令:
example% date '+DATE: %m/%d/%y%nTIME:%H:%M:%S'
生成以下输出
DATE: 08/01/76 TIME: 14:45:05示例 2 设置当前时间
以下命令将当前时间设置为 12:34:56:
example# date 1234.56示例 3 以格林威治标准时间设置另一个时间和日期
以下命令将日期设置为 2000 年 1 月 1 日上午 12:30:
example# date -u 010100302000
这显示为:
Thu Jan 01 00:30:00 GMT 2000
有关影响 date 执行的以下环境变量的说明,请参见 environ(5):LANG、LC_ALL、LC_CTYPE、LC_TIME、LC_MESSAGES 和 NLSPATH。
确定用来写入时间和日期的时区,除非指定了 –u 选项。如果未设置 TZ 变量并且未指定 –u,则将使用系统缺省时区。
将返回以下退出值:
成功完成。
出现错误。
有关下列属性的说明,请参见 attributes(5):
|
|
strftime(3C)、attributes(5)、environ(5)、standards(5)
您不是超级用户并且您试图更改日期。
设置日期时使用了错误的语法。
如果您尝试将当前日期设置为标准时区和备用时区发生变化的某个日期(例如,夏时制时间开始或结束的日期),并且您尝试将时间设置为介于标准时间的结束与备用时间的开始(或备用时间的结束与标准时间的开始)之间的某个时间,则结果不可预测。
从窗口环境内使用 date 命令来更改日期可能会导致不可预测的结果并且不安全。在多用户模式下更改日期(也就是说,在窗口系统外,如果日期被快速地改来改去)可能也不安全。用于修改日期的建议方法是 'date –a'。
在 Solaris 上,不允许将系统时间设置为或者任其发展为超出 2038 年 1 月 19 日 03:14:07 UTC 的时间。