опция команды date --iso-8601

70

В этом ответе и комментариях упоминается --rfc-3339и «скрытый» --iso-8601вариант, который я использовал давно и сейчас, похоже, недокументирован.

Когда эта опция документация была удалена из --helpтекста?

Будет ли вариант уйти в ближайшее время?

Angelo
источник
1
Чтобы получить эту функцию в OSX, я наконец-то получил инструменты GNU: $ brew install coreutils; gdate --iso-8601 -d "вчера 12:00"
AnneTheAgile
3
@AnneTheAgile для macOS, вы можете вручную отформатировать дату следующим образом: «дата +% Y-% m-% dT% H:% M:% S% z»
Барт Доу

Ответы:

60

Опция была введена в coreutils date(что, вероятно, то, что у вас есть) в 1999 году (8 апреля).

Документация была удалена в 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

Обратите внимание, что coreutils-8.27 --rfc-2822устарела в пользу более общего--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
alfredocambera
источник