エポック時間を人間が読める形式に変換したい。インターネットで検索して見つけた
例: date -d @1270787111
.
デートの説明書を読み直しました。
-d, --date=STRING '今' ではなく STRING で記述された表示時間
と
DATE STRING --date=STRING はほとんど無料です...
この形式については何も見つかりませんでした。私は何かが恋しいですか?
あなたが参照している同じ「DATE STRING」セクションは、次の文で終わります。
日付文字列の形式は、ここで簡単に文書化するよりも複雑ですが、info ドキュメントで完全に説明されています。
つまり、「info」ページを参照する必要があります。これを行うには、端末に入力するinfo date
か、オンラインでこれらのドキュメントを参照してください。たとえば、入力形式については、ここで詳しく説明されています。
では、なぜ接頭辞@
が必要なのdate -d @1270787111
ですか? @
マニュアルページの例で言及されている特定の形式は、§28.8 で説明されています。
エポックから 28.8 秒
数字の前に
@', it represents an internal time stamp as a count of seconds. The number can contain an internal decimal point (either
.'を付けると、または `,'); 内部表現でサポートされていない余分な精度は、マイナスの無限大に向かって切り捨てられます。このような数値は、完全なタイム スタンプを指定するため、他の日付項目と組み合わせることはできません。内部的には、コンピューター時間はエポック (明確に定義された時点) からの秒数として表されます。GNU および POSIX システムでは、エポックは 1970-01-01 00:00:00 UTC であるため、
@0' represents this time,
@1' は 1970-01-01 00:00:01 UTC を表します。GNU および他のほとんどの POSIX 準拠システムは、負のカウントを使用して POSIX の拡張などの時間をサポートしているため、'@-1' は 1969-12-31 23:59:59 UTC を表します。従来の Unix システムは、32 ビットの 2 の補数の整数で秒をカウントし、1901-12-13 20:45:52 から 2038-01-19 03:14:07 UTC までの時間を表すことができます。最新のシステムでは、ナノ秒のサブカウントで 64 ビットの秒数を使用し、宇宙の既知の寿命のすべての時間を 1 ナノ秒の分解能で表すことができます。
ほとんどのホストでは、これらのカウントはうるう秒の存在を無視します。たとえば、ほとんどのホストでは、
@915148799' represents 1998-12-31 23:59:59 UTC,
@915148800' は 1999-01-01 00:00:00 UTC を表し、その間のうるう秒 1998-12-31 23:59:60 UTC を表す方法はありません。