私の考えでは、これは完璧だと思います。おそらくあなたも好きでしょう。

私の考えでは、これは完璧だと思います。おそらくあなたも好きでしょう。

これ回答コメントには私が長い間使用してきましたが、今は文書化されていないような--rfc-3339「隠す」オプションが言及されています。--iso-8601

オプション文書はテキストからいつ削除されましたか--help

このオプションはすぐに消えますか?

答え1

dateこのオプションは1999年(4月8日)にcoreutils(おそらく持っているでしょう)に導入されました。

この文書は以下から削除されました。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にはありません)に再び追加されたように見えます。

バージョン 8.31 (2020 年 7 月 Solus で提供) のマニュアルページには、次の 2 つのオプションがあります。

   -I[FMT], --iso-8601[=FMT]
          output date/time in ISO 8601 format.  FMT='date' for date only (the default), 'hours', 'minutes', 'sec‐
          onds', or 'ns' for date and time to the indicated precision.  Example: 2006-08-14T02:34:56-06:00

   --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

答え2

プラットフォームに依存しない場合(ほぼ)完全に互換性があります。 ISO 8601 日付の場合は、以下を使用してください。

date +"%Y-%m-%dT%H:%M:%S%z"

結果は次のとおりです。2021-01-16T23:09:44-0500

これはmacOS(BSD)とLinuxで動作します。

技術的に言えばいっぱいコンプライアンスは次のとおりです。

date +"%Y-%m-%dT%H:%M:%S%:z"

オフセット(タイムゾーン)フィールドにはコロン " :"が含まれています。〜サイ' %'そして' z'.  これにより完全ISO 8601に関する苦情を提出できる時間は次のとおりです。2021-01-16T23:09:44-05:00

しかし、これはいいえmacOSで動作します(この記事を書いた時点で)これはLinux(GNUなど)で動作します  date

~のためUTC時間(ゼロオフセット、歴史的に「Zulu時間」として知られています)を使用して-uUTC時間を取得できます。Zいいえ前には「%(またはコロン - リテラルZ」)が付いています。

date -u +"%Y-%m-%dT%H:%M:%SZ"

結果は次のとおりです。2021-01-17T04:16:14Z

答え3

--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

答え4

私の考えでは、これは完璧だと思います。おそらくあなたも好きでしょう。

date -u --iso-8601=ns | sed s/+00:00/Z/ | sed s/,/./

結果の例:2022-12-10T20:44:36.753578818Z

関連情報