команда дата - опція -iso-8601


70

У цій відповіді та коментарях згадується --rfc-3339і "прихований" --iso-8601варіант, яким я користувався давно і зараз, здається, не є документацією.

Коли документацію цієї опції видалили з --helpтексту?

Чи невдовзі ця опція піде?


1
Щоб отримати цю функцію на OSX, я нарешті отримав інструменти GNU: $ brew install coreutils; gdate --iso-8601 -d "вчора 12:00"
AnneTheAgile

3
@AnneTheAgile для macOS, ви можете вручну відформатувати дату так: "дата +% Y-% m-% dT% H:% M:% S% z"
Bart Doe

Відповіді:


60

Цей варіант був введений в coreutils date(що, мабуть, є у вас) у 1999 році (8 квітня).

Документація була вилучена в 2005 році без особливих пояснень у комітеті.

У 2011 році допомога для --iso-8601 була знову введена з наступним поясненням:

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.

Схоже, довідка була винесена у версії 5.90 та повернена до неї, у версії 8.15 (це не в моєму 8.13), і коментар вище свідчить про те, що вона повернулася до кінця і, швидше за все, не зникне незабаром.


33

--Help насправді отримав оновлення фактично, тому опція, безумовно, не йде:

-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

Зауважте, оскільки Coreutils-8.27 --rfc-2822застаріло на користь більш загального--rfc-email

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

Було б добре, якби був -Iстиль без часового поясу. Було б корисніше для ведення журналів тощо, де часовий пояс не має значення
naught101

14

У мене працює Linux Mint, і доступна опція:

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

Виконання команди:

$echo $(date --iso-8601=seconds)
2016-12-14T09:53:25-0400
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.