DATE(1)

名称
date - 输出或设置系统日期与时间

概述
date [选项]... [+格式字符串]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

描述

按照给定的格式字符串显示日期和时间。使用了 -s 选项或 [MMDDhhmm[[CC]YY][.ss]] 参数时，设置日期和时间。

必选参数对长短选项同时适用。

-d, --date=字符串
    显示由字符串指定的时间，而不是当前时间

--debug
    对日期的解析过程进行注解，对不规范的用法进行警告，并输出到标准错误

-f, --file=日期文件
    类似 --date；对日期文件的每一行执行一次

-I[格式], --iso-8601[=格式]
    以 ISO 8601 格式输出日期/时间。格式="date" 时只输出日期（默认行为），当其为 "hours"、"minutes"、"seconds" 或 "ns" 时则按照所指示的精确度显示日期和时间。示例：2006-08-14T02:34:56-06:00

--resolution
    输出时间戳的可用精度 例如：0.000000001

-R, --rfc-email
    以 RFC 5322 格式输出日期与时间。例：Mon, 14 Aug 2006 02:34:56 -0600

--rfc-3339=格式
    以 RFC 3339 格式输出日期/时间。格式="date"、"seconds" 或 "ns"，按照所指示的精确度显示日期和时间。例如：2006-08-14 02:34:56-06:00

-r, --reference=文件
    显示指定文件的最后修改时间

-s, --set=字符串
    将时间设置为字符串所描述的时间

-u, --utc, --universal
    按照协调世界时 (UTC) 显示或设置时间

--help
    显示此帮助信息并退出

--version
    显示版本信息并退出

格式字符串控制输出格式。支持解释的序列有：

%%  一个 % 字符

%a  当前区域设置的星期几的缩写（例如：日）

%A  当前区域设置的星期几的全称（例如：星期日）

%b  当前区域设置的月份缩写（例如：1月）

%B  当前区域设置的月份全称（例如：一月）

%c  当前区域设置的日期和时间（例如：2005年03月03日 星期四 23时05分25秒）

%C  世纪（指年份的最高两位）；类似 %Y，但省略最后两位数（例如：20）

%d  日（例如：01）

%D  日期；等于 %m/%d/%y

%e  日，以空格填充；等于 %_d

%F  完整的日期；等于 %+4Y-%m-%d

%g
     ISO 周数年的最后两位（参见 %G）

%G
     ISO 周数年（参见 %V）；一般只和 %V 一起使用

%h  等于 %b

%H  小时 (00..23)

%I  小时 (01..12)

%j  一年中的第几日 (001..366)

%k  小时，以空格填充 ( 0..23)；等于 %_H

%l  小时，以空格填充 ( 1..12)；等于 %_I

%m  月 (01..12)

%M  分钟 (00..59)

%n  换行

%N  纳秒 (000000000..999999999)

%p  当前区域设置中 AM 或 PM 的等价说法（"上午" 或 "下午"）；未知则为空

%P  类似 %p，但使用小写

%q  季度 (1..4)

%r  当前区域设置中 12 小时制钟表时间（例如：下午 11时11分04秒）

%R  24 小时制的小时和分钟；等于 %H:%M

%s  自 Epoch (1970-01-01 00:00 UTC) 以来的秒数

%S  秒 (00..60)

%t  制表符

%T
     时间；等于 %H:%M:%S

%u  星期几 (1..7)；1 代表星期一

%U  一年中的第几周，以周日为每周第一天 (00..53)

%V  ISO 周数，以周一为每周第一天 (01..53)

%w  星期几 (0..6)；0 代表星期日

%W  一年中的第几周，以周一为每周第一天 (00..53)

%x  当前区域设置的日期表示法（例如：1999年12月31日）

%X  当前区域设置的时间表示法（例如：23时13分48秒）

%y  年的最后两位 (00..99)

%Y  年

%z  +hhmm 数字时区（例如：-0400）

%:z +hh:mm 数字时区（例如：-04:00）

%::z
    +hh:mm:ss 数字时区（例如：-04:00:00）

%:::z
    数字时区，精度上有必要时加 ":"（例如：-04、+05:30）

%Z  字母时区缩写（例如：EDT）

默认情况下，date 输出的数字字段以 0 填充。以下可选的标志可以跟在 "%" 后：

-   （连字符）不填充该字段

_   （下划线）以空格填充

0   （数字 0）以 0 填充

+   以 0 填充，并且在超过四位数的未来年份之前添加 "+" 符号

^   如果可能，使用大写形式

#   如果可能，使用相反的大小写

在任何标志之后可以有一个可选的字段宽度，它是一个十进制数字；然后是一个可选的修饰符，它可以是 E，表示如果可用，使用区域设置的另一种表示法，或者 O，表示如果可用，使用区域设置的另一套数字符号。

范例
将 Epoch (1970-01-01 UTC) 以来的秒数转换为日期

    $ date --date='@2147483647'

显示美国西海岸的当前时间（请使用 tzselect(1) 来查询 TZ 的具体数值）

    $ TZ='America/Los_Angeles' date

显示美国西海岸下个周五上午 9 时的当地时间

    $ date --date='TZ="America/Los_Angeles" 09:00 next Fri'

日期字符串
“--date=字符串”选项中的的字符串可以是人类易于理解阅读的日期字符串，例如 "Sun, 29 Feb 2004 16:21:42 -0800" 或 "2004-02-29 16:21:42"，甚至可以是 "next Thursday"。一个日期字符串可能包含表示日历日期、一日中的具体时间、时区、星期、相对时间、相对日期和数字的信息。一个空字符串表示当日的起始。日期字符串的具体格式较为复杂，在手册页中难以简单描述清楚，但是您可以在 info 文档中找到完整内容。

作者
由 David MacKenzie 编写。

报告错误
GNU coreutils 的在线帮助： <https://www.gnu.org/software/coreutils/>
请向 <https://translationproject.org/team/zh_CN.html> 报告翻译错误。

版权
Copyright © 2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
本软件是自由软件：您可以自由修改和重新发布它。在法律允许的范围内，不提供任何保证。

参见
完整文档请见： <https://www.gnu.org/software/coreutils/date>
或者在本地使用： info '(coreutils) date invocation'