*nix コマンド "date" を強制的にローカルに依存しない特定の形式で出力する方法はありますか? たとえば、米国のマシンで今日「date -u」を呼び出すと、次のようになります。
Mon Oct 15 13:15:29 UTC 2012
しかし、ドイツのマシンでは次のようになります。
Mo 15. Okt 13:15:31 UTC 2012
もちろん、いつでも自分でフォーマットを指定できます。
date +%a, %b %d
または、一時的な環境変数を使用できます。
:~$ LC_ALL=de_DE.utf8 date
Mo 15. Okt 15:34:11 CEST 2012
:~$ date
Mon Oct 15 15:33:24 CEST 2012
ご覧のとおり、最初のコマンドのみがドイツ語ロケールで実行されます。
実行する環境を変更できますdate
。これが最善の方法かどうかはわかりませんが (ロケール処理で使用される変数は多数あります)、次のように動作します。
$ LANG=de_DE date
Mo 15 Okt 2012 09:34:12 EDT
(1月はこの回答に1分ほどで私を打ち負かしましたが、どの変数(、、その他)が最も「適切」であるかを明確にすることを期待して、回答を残しておきますLC_ALL
。LANG
)
次のことを試しましたか?(日付のマニュアルページから取得しました)
# date -u +"%a %b %d %T %Z %Y"
UTC:
date -u -R
ローカル:
date -R
まず、目的のロケール行のコメントを外して/etc/locale.gen
から実行しますlocale-gen
(両方とも root として)。文字が表示されるように、端末が必要なエンコードをサポートしていることを確認してください。
次に、次のように、1 つのコマンドの実行時に「一時的な」ロケールを指定できます。
LC_ALL="de_DE.UTF-8" date