comando de fecha - opción iso-8601

70

Esta respuesta y comentarios mencionan --rfc-3339y una --iso-8601opción "oculta" que he usado durante mucho tiempo y ahora parece no estar documentada.

¿Cuándo se eliminó la documentación de esa opción del --helptexto?

¿La opción desaparecerá pronto?

Angelo
fuente
1
Para obtener esta función en OSX, finalmente obtuve las herramientas GNU: $ brew install coreutils; gdate --iso-8601 -d "ayer 12:00"
AnneTheAgile
3
@AnneTheAgile para macOS, puede formatear manualmente la fecha de esta manera: "fecha +% Y-% m-% dT% H:% M:% S% z"
Bart Doe

Respuestas:

60

La opción se introdujo en los coreutils date(que probablemente es lo que tiene) en 1999 (8 de abril).

La documentación fue eliminada en 2005 sin mucha explicación en el commit.

En 2011 , la ayuda para --iso-8601 se reintrodujo con la siguiente explicación:

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 la ayuda se sacó en la versión 5.90 y se volvió a poner en la versión 8.15 (no está en mi 8.13) y el comentario anterior sugiere que ahora está de regreso para quedarse y no es probable que desaparezca pronto.

Anthon
fuente
33

El --help recibió una actualización recientemente en realidad, por lo que la opción definitivamente no desaparecerá:

-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

Tenga en cuenta que coreutils-8.27 --rfc-2822está en desuso a favor de los más generales--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
fuente
Sería bueno si hubiera un -Iestilo sin la zona horaria. Sería más útil para iniciar sesión, etc., donde la zona horaria no importa
nada101
14

Estoy ejecutando Linux Mint y la opción está disponible:

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

La ejecución del comando:

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