「日付」が私のロケールを尊重しないのはなぜですか?

「日付」が私のロケールを尊重しないのはなぜですか?

日付に問題があります。 EU/オーストラリア形式(dd-mm)ではなく、米国形式(mm-dd)として解釈されます。date私のロケール設定に従わないか、間違って設定されているようです。

# This is correct, date read as US mm-dd-yy format
$ LC_TIME="en_US" date +%Y-%m-%d -d 1/2/03
2003-01-02

# This is incorrect, dates are read as US mm-dd-yy instead of AU dd-mm-yyyy
$ LC_TIME="en_AU" date +%Y-%m-%d -d 1/2/03
2003-01-02

ロケールは大丈夫に見え、date正しい形式を生成します。

$ LC_TIME="en_US" date +%x -d 2003-02-01
02/01/2003
$ LC_TIME="en_AU" date +%x -d 2003-02-01
01/02/03

これはバグですかdate、それとも短い日付を読むときにロケールを尊重するために別のタスクを実行する必要がありますか?

ベストアンサー1

GNUdate -dオプションは、提供された日付が「ロケールに依存しない形式」であると予想します。これは基本的に日付に関する限り米国形式を意味しますPOSIXxx/yy/zz

おすすめ記事