日期命令--iso-8601选项


70

这个答案和评论提到--rfc-3339--iso-8601我已经使用了很长时间的“隐藏” 选项,现在似乎没有记载。

该选项文档何时从--help文本中删除?

该选项会很快消失吗?


1
为了在OSX上获得此功能,我终于有了GNU工具:$ brew install coreutils; gdate --iso-8601 -d“昨天12:00”
AnneTheAgile

3
@macOS的@AnneTheAgile,您可以像这样手动设置日期格式:“日期+%Y-%m-%dT%H:%M:%S%z”
Bart Doe

Answers:


60

该选项date于1999年(4月8日)引入coreutils (可能是您所拥有的)中。

该文档在2005年被删除,提交中没有太多解释。

2011年,重新引入了--iso-8601的帮助,内容如下:

We deprecated and undocumented the --iso-8601 (-I) option mostly
because date could not parse that particular format.  Now that
it can, it's time to restore the documentation.
* src/date.c (usage): Document it.
* doc/coreutils.texi (Options for date): Reinstate documentation.
Reported by Hubert Depesz Lubaczewski in http://bugs.gnu.org/7444.

看来该帮助已从5.90版本中撤回,并在8.15版本中重新投入使用(它不在我的8.13中),并且上面的注释表明该帮助现在已恢复存在并且不太可能很快消失。


33

--help实际上最近有更新,因此该选项肯定不会消失:

-I[FMT], --iso-8601[=FMT]  output date/time in ISO 8601 format.
                             FMT='date' for date only (the default),
                             'hours', 'minutes', 'seconds', or 'ns'
                             for date and time to the indicated precision.
                             Example: 2006-08-14T02:34:56-06:00

     -R, --rfc-2822        output date and time in RFC 2822 format.
                             Example: Mon, 14 Aug 2006 02:34:56 -0600

         --rfc-3339=FMT    output date/time in RFC 3339 format.
                             FMT='date', 'seconds', or 'ns'
                             for date and time to the indicated precision.
                             Example: 2006-08-14 02:34:56-06:00

请注意,因为--rfc-2822不赞成使用coreutils-8.27,而建议使用更通用的--rfc-email

     -R, --rfc-email       output date and time in RFC 5322 format.
                             Example: Mon, 14 Aug 2006 02:34:56 -0600

如果有-I没有时区的样式,那就太好了。对于时区无关紧要的日志记录等会更有用
naught101

14

我正在运行Linux Mint,该选项可用:

$ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description:    Linux Mint 17.3 Rosa
Release:    17.3
Codename:   rosa

命令的执行:

$echo $(date --iso-8601=seconds)
2016-12-14T09:53:25-0400
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.