polecenie daty - opcja -iso-8601


70

Ta odpowiedź i komentarze wspominają --rfc-3339oraz „ukryta” --iso-8601opcja, z której korzystałem od dawna, a teraz wydaje się nieudokumentowana.

Kiedy dokumentacja tej opcji została usunięta z --helptekstu?

Czy opcja zniknie w najbliższym czasie?


1
Aby uzyskać tę funkcję w OSX, w końcu dostałem narzędzia GNU: $ brew install coreutils; gdate --iso-8601 -d "wczoraj 12:00"
AnneTheAgile

3
@AnneTheAgile dla macOS, możesz ręcznie sformatować datę w następujący sposób: „data +% Y-% m-% dT% H:% M:% S% z”
Bart Doe

Odpowiedzi:


60

Opcja została wprowadzona w coreutils date(prawdopodobnie jest to, co masz) w 1999 r. (8 kwietnia).

Dokumentację usunięto w 2005 r. Bez większego wyjaśnienia w zatwierdzeniu.

W 2011 r. Ponownie wprowadzono pomoc dla --iso-8601 z następującym wyjaśnieniem:

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.

Wygląda na to, że pomoc została wyjęta w wersji 5.90 i wprowadzona z powrotem, w wersji 8.15 (nie ma jej w wersji 8.13), a powyższy komentarz sugeruje, że teraz wróci do pozostania i prawdopodobnie nie zniknie w najbliższym czasie.


33

--Help dostał ostatnio aktualizację, więc opcja na pewno nie zniknie:

-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

Uwaga, ponieważ coreutils-8.27 --rfc-2822jest przestarzały na korzyść bardziej ogólnych--rfc-email

     -R, --rfc-email       output date and time in RFC 5322 format.
                             Example: Mon, 14 Aug 2006 02:34:56 -0600

Byłoby miło, gdyby istniał -Istyl bez strefy czasowej. Przydałby się bardziej do logowania itp., Gdzie
strefa

14

Korzystam z Linux Mint, a opcja jest dostępna:

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

Wykonanie polecenia:

$echo $(date --iso-8601=seconds)
2016-12-14T09:53:25-0400
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.