使用前一个日期的内容解析日期执行问题错误

Dan*_*ira 4 command-line date

我在使用 date 命令时遇到了一些麻烦。以下执行发出错误:

danilo@desktop:~$ x=$(date -d "+60 seconds"); dt=$(date -d "$x")
date: invalid date ‘Mo 11. Sep 09:07:05 CEST 2017’
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为它可以在我测试过的其他计算机上运行。甚至这个:

danilo@desktop:~$ x=$(date); dt=$(date -d "$x")
date: invalid date ‘Mo 11. Sep 09:06:43 CEST 2017’
Run Code Online (Sandbox Code Playgroud)

产生错误。

这个错误的原因是什么?是时区设置吗?我怎样才能让它工作?

Joh*_*024 8

迄今为止,不支持您的语言环境的默认格式作为输入。解决方案是使用一些标准格式。例如:

x=$(date -d "+60 seconds" +%s); dt=$(date -d "@$x")
Run Code Online (Sandbox Code Playgroud)

+%s告诉date返回标准的 Unix 格式:自纪元以来的秒数。

@符号date -d "@$x"告诉date解释$x为秒纪元以来。