使用先前日期执行的内容解析日期会出现错误

使用先前日期执行的内容解析日期会出现错误

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

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

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

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

产生错误。

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

答案1

迄今为止,不支持您的区域设置的默认格式作为输入。解决方案是使用某种标准格式。例如:

x=$(date -d "+60 seconds" +%s); dt=$(date -d "@$x")

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

登录@指示date -d "@$x"date其解释$x为自纪元以来的秒数。

相关内容