Linux:日期cmd 不接受其自己的输出字符串作为输入字符串?

Linux:日期cmd 不接受其自己的输出字符串作为输入字符串?
$ date
Mi 14. Jun 09:54:58 CEST 2017

$ date -d "Mi 14. Jun 09:54:58 CEST 2017" +%s
date: invalid date ‘Mi 14. Jun 09:54:58 CEST 2017’

为什么 date 命令不接受其自己的输出字符串作为有效输入字符串?

答案1

info date告诉我该-d选项需要以与区域无关的格式输入。要获取输出在这种格式中,使用:

LC_TIME=C date

因此下面的操作应该可行:

date -d "$(LC_TIME=C date)" +%s

这只是一个有点意义的繁琐例子(比较date +%s),但它表明date接受其输出作为输入。


琐事:要使大多数命令产生与语言环境无关的输出,请使用LANG=C some_command。上面的例子中LANG=C date也应该可以正常工作。

相关内容