comando date --iso-8601 opção

70

Esta resposta e comentários mencionam --rfc-3339e uma --iso-8601opção "oculta" que utilizo há muito tempo e que agora parece não estar documentada.

Quando a documentação dessa opção foi removida do --helptexto?

A opção desaparecerá tão cedo?

Angelo
fonte
11
Para obter esse recurso no OSX, finalmente obtive as ferramentas GNU: $ brew install coreutils; gdate --iso-8601 -d "ontem 12:00"
AnneTheAgile 05/07
3
@AnneTheAgile para macOS, você pode formatar manualmente a data da seguinte forma: "data +% Y-% m-% dT% H:% M:% S% z"
Bart Doe

Respostas:

60

A opção foi introduzida nos coreutils date(provavelmente o que você tem) em 1999 (8 de abril).

A documentação foi removida em 2005 sem muita explicação no commit.

Em 2011 , a ajuda para --iso-8601 foi reintroduzida com a seguinte explicação:

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.

Parece que a ajuda foi retirada na versão 5.90 e recolocada na versão 8.15 (não está na minha 8.13) e o comentário acima sugere que agora ela voltou a ficar e provavelmente não estará desaparecendo tão cedo.

Anthon
fonte
33

A --help recebeu uma atualização recentemente, na verdade, então a opção definitivamente não vai embora:

-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

Note que o coreutils-8.27 --rfc-2822foi descontinuado em favor dos mais gerais--rfc-email

     -R, --rfc-email       output date and time in RFC 5322 format.
                             Example: Mon, 14 Aug 2006 02:34:56 -0600
Pádraig Brady
fonte
Seria bom se houvesse um -Iestilo sem o fuso horário. Seria mais útil para registrar, etc, onde o fuso horário não importa
naught101 17/01
14

Estou executando o Linux Mint e a opção está disponível:

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

A execução do comando:

$echo $(date --iso-8601=seconds)
2016-12-14T09:53:25-0400
alfredocambera
fonte