date
解析器如何工作?
date -d "2010-08-12 05:30:30.102 AM + 0 months"
Thu Aug 12 05:30:30 EDT 2010
但是
date -d "2010-08-12 05:30:30.102 + 0 months"
Thu Aug 12 01:30:30 EDT 2010
答案 0 :(得分:3)
似乎是+ 0
在未包含AM
时被解释为UTC偏移的情况。但是,当包含AM
时,+ 0
是否适用于偏移或者是否属于months
不再含糊不清,因为UTC偏移仅在24小时时间有效时才有效用过的。
在前一种情况下,months
单独被解释为+ 1 months
(至少在date
的某些版本中),如评论中提到的ghoti。
还要考虑date -d "2010-08-12 05:30:30 +0"
是可接受的格式。但是date -d "2010-08-12 05:30:30 AM +0"
无效,因为AM
存在时无法使用UTC偏移量。