日付に問題があります。 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
オプションは、提供された日付が「ロケールに依存しない形式」であると予想します。これは基本的に日付に関する限り米国形式を意味しますPOSIX
。xx/yy/zz