30

*nix コマンド "date" を強制的にローカルに依存しない特定の形式で出力する方法はありますか? たとえば、米国のマシンで今日「date -u」を呼び出すと、次のようになります。

Mon Oct 15 13:15:29 UTC 2012

しかし、ドイツのマシンでは次のようになります。

Mo 15. Okt 13:15:31 UTC 2012
4

7 に答える 7

54

もちろん、いつでも自分でフォーマットを指定できます。

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

ご覧のとおり、最初のコマンドのみがドイツ語ロケールで実行されます。

于 2012-10-15T13:34:25.963 に答える
12

実行する環境を変更できますdate。これが最善の方法かどうかはわかりませんが (ロケール処理で使用される変数は多数あります)、次のように動作します。

$ LANG=de_DE date
Mo 15 Okt 2012 09:34:12 EDT

(1月はこの回答に1分ほどで私を打ち負かしましたが、どの変数(、、その他)が最も「適切」であるかを明確にすることを期待して、回答を残しておきますLC_ALLLANG

于 2012-10-15T13:35:19.440 に答える
4

次のことを試しましたか?(日付のマニュアルページから取得しました)

# date -u +"%a %b %d %T %Z %Y"
于 2012-10-15T13:28:32.927 に答える
1

UTC:

date -u -R

ローカル:

date -R
于 2014-03-09T21:04:10.407 に答える
1

まず、目的のロケール行のコメントを外して/etc/locale.genから実行しますlocale-gen(両方とも root として)。文字が表示されるように、端末が必要なエンコードをサポートしていることを確認してください。

次に、次のように、1 つのコマンドの実行時に「一時的な」ロケールを指定できます。

LC_ALL="de_DE.UTF-8" date
于 2019-07-21T07:37:40.987 に答える