質問: windowsでlocaleコマンドを打ったところ、`LC_TIME="ja_JP.UTF-8"`とでました。時刻の設定ならja_JPだけでいいのではないでしょうか?なぜ、文字コードも記入されているのでしょうか? もしかして、`LC_TIME`には`LANG`の情報が記入されて、内部の処理では`LC_TIME`だけが参照されているのでしょうか? ``` $ locale LANG=ja_JP.UTF-8 LC_CTYPE="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_ALL= ```
回答: > > 時刻の設定ならja_JPだけでいいのではないでしょうか? > > > 誤解されているかも知れないので、念のため。 時刻の設定とロケールは関係ないです。時刻の設定に関係するのは、タイムゾーンです。 例えば、ロンドンに住んでいる日本語使用者は、タイムゾーンがロンドンで、ロケールは日本語に設定することが考えられます。 ロケールは、表示の際に関係します。 ``` $ date +%X 13時23分22秒 $ date +%r 午後01時23分25秒 ``` ロケールを指定する環境変数は3段階あって、 `LC_ALL`が設定されていれば必ずそれが使われる `LC_ALL`が設定されておらず、対象となる`LC_xxx`が設定されていればそれが使われる `LC_ALL`も`LC_xxx`も設定されていない場合は、`LANG`が使われる