$ 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
也应该可以正常工作。