commande de date - option iso-8601

70

Cette réponse et ces commentaires font mention d’ --rfc-3339une --iso-8601option "cachée" que j’utilise depuis longtemps et qui semble maintenant être sans papiers.

Quand cette documentation sur les options a-t-elle été supprimée du --helptexte?

L'option disparaîtra-t-elle de sitôt?

Angelo
la source
1
Pour obtenir cette fonctionnalité sur OSX, j'ai finalement obtenu les outils GNU: $ brew install coreutils; vendredi -'o-8601 -d "hier 12:00"
AnneTheAgile
3
@AnneTheAgile pour macOS, vous pouvez formater manuellement la date comme suit: "date +% A-% m-% dT% H:% M:% S% z"
Bart Doe

Réponses:

60

L'option a été introduite dans les coreutils date(ce qui est probablement ce que vous avez) en 1999 (8 avril).

La documentation a été supprimée en 2005 sans trop d'explications dans le commit.

En 2011 , l'aide pour --iso-8601 a été réintroduite avec l'explication suivante:

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.

Il semble que l’aide ait été supprimée dans la version 5.90 et réintégrée dans la version 8.15 (ce n’est pas dans la version 8.13) et le commentaire ci-dessus suggère qu’il est maintenant de retour et ne risque pas de disparaître de si tôt.

Anthon
la source
33

Le --help a reçu une mise à jour récemment, donc l'option ne va définitivement pas disparaître:

-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

Notez que coreutils-8.27 --rfc-2822est déconseillé au profit du plus général--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
la source
Ce serait bien s'il y avait un -Istyle sans le fuseau horaire. Serait plus utile pour la journalisation, etc., où le fuseau horaire n'a pas d'importance
naught101
14

J'utilise Linux Mint et l'option est disponible:

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

L'exécution de la commande:

$echo $(date --iso-8601=seconds)
2016-12-14T09:53:25-0400
Alfredo Cambera
la source