我在使用 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
为自纪元以来的秒数。