为什么“日期”不尊重我的区域设置?

为什么“日期”不尊重我的区域设置?

我在处理日期时遇到一些问题,它们被解释为美国格式 (mm-dd) 而不是欧盟/澳大利亚格式 (dd-mm)。看起来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日期而言本质上意味着美国格式。

相关内容