date
アメリカのロケールには非常に奇妙な基本形式があるようです。Thu Jul 9 17:00:00 EDT 2020
空白で満たされた月の日付を使用し(24時間!)、時間を月と日と年の間に入れます。
これも一種の基準ですか?それはどこから出たの?
答え1
フォーマットは標準で定義されていますが、標準では指定されていませんen_US
。POSIXでは、POSIX ロケールにのみ興味があり、状態
書式指定オペランドが指定されていない場合、POSIXロケールの出力は以下を指定するのと同じでなければなりません。
date "+%a %b %e %H:%M:%S %Z %Y"
歴史の中(例えばUnix V7)では、date
以下を使用します。asctime
、別の形式を使用します。
Sun Sep 16 01:03:52 1973\n\0
POSIX 形式は、時間と年の間にタイムゾーンを追加します。
POSIXで定義した形式の履歴はわかりませんが、asctime
わざわざベースの形式であるとします。
asctime
推論が必ずしも明確ではないとしても、歴史は少なくとも探求することができます。
に従ってV3、ctime
生成された出力は次の形式です。
Oct 9 17:32:24\0
V4は平日と年を追加します。、上記の形式を中心に使用されている形式を作成しますasctime
。
Sun Sep 16 01:03:52 1973\n\0
したがって、その形態は「有機的に」発展したようです。最初は月、日付、時刻のみが含まれます。曜日と年を追加した後は、既存の形式を保持しているように見えるので、前に曜日が追加され、最後に年が追加されます。最後にタイムゾーンを追加する時、年度より時間に関連があると見ることもできますね…。