これ回答コメントには私が長い間使用してきましたが、今は文書化されていないような--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時間」として知られています)を使用して-u
UTC時間を取得できます。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