Datum Befehl --iso-8601 Option

70

Diese Antwort und Kommentare erwähnen --rfc-3339und eine "versteckte" --iso-8601Option, die ich für eine lange Zeit verwendet habe und jetzt undokumentiert zu sein scheint.

Wann wurde diese Optionsdokumentation aus dem --helpText entfernt?

Geht die Option bald weg?

Angelo
quelle
1
Um diese Funktion unter OSX nutzen zu können, habe ich endlich die GNU-Tools bekommen: $ brew install coreutils; gdate --iso-8601 -d "gestern 12:00"
AnneTheAgile
3
@AnneTheAgile für MacOS können Sie das Datum wie folgt manuell formatieren: "Datum +% Y-% m-% dT% H:% M:% S% z"
Bart Doe

Antworten:

60

Die Option wurde date1999 (8. April) in den Coreutils eingeführt (das ist wahrscheinlich das, was Sie haben).

Die Dokumentation wurde 2005 ohne viel Erklärung im Commit entfernt.

Im Jahr 2011 wurde die Hilfe für --iso-8601 mit der folgenden Erklärung wieder eingeführt:

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.

Es sieht so aus, als ob die Hilfe in Version 5.90 entfernt und in Version 8.15 wiederhergestellt wurde (sie ist nicht in meiner Version 8.13 enthalten). Der obige Kommentar deutet darauf hin, dass sie jetzt wieder verfügbar ist und voraussichtlich nicht so bald verschwindet.

Anthon
quelle
33

Das --help hat vor kurzem ein Update bekommen, daher wird die Option definitiv nicht wegfallen:

-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

Beachten Sie, dass coreutils-8.27 --rfc-2822zugunsten der allgemeineren nicht mehr empfohlen wird--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
quelle
Es wäre schön, wenn es einen -IStil ohne Zeitzone gäbe . Wäre nützlicher für die Protokollierung usw., wenn die Zeitzone keine Rolle spielt
naught101
14

Ich verwende Linux Mint und die Option ist verfügbar:

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

Die Ausführung des Befehls:

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