我在Linux上测试我的备份脚本,当我尝试将日期设置为'20141019'时出现此错误:
# date +%Y%m%d -s "20141019"
date: invalid date ‘20141019’
这有效:
# date +%Y%m%d -s "20141018"
20141018
# date +%Y%m%d -s "20141020"
20141020
在20141116将日期设定为28天之前的另一个问题
# date -d '28 day ago' +%Y-%m-%d
2014-10-18
// at 20141117:
# date -d '28 day ago' +%Y-%m-%d
2014-10-20
linux date v.8.21有什么问题?
答案 0 :(得分:0)
您可以尝试此命令。
命令: timedatectl set-time YYYY-MM-DD HH:MM:SS
设置日期和时间 timedatectl set-time'2015-11-23 08:10:40'
仅设置日期: timedatectl set-time'2015-12-01'
只设置时间 timedatectl set-time '10:42:43'
答案 1 :(得分:0)
我刚试过this tutorial
它为您提供了多种解决方案来设置日期和时间,您可以找到解决问题的方法。
答案 2 :(得分:0)
这是由于时区夏令时出现问题 - 如果时区已进入夏令时,则不会将午夜计入GNU日期:
~$ TZ=America/Sao_Paulo date -d '20161016 + 1 day'
date: invalid date `20161016 + 1 day'
~$ TZ=America/Sao_Paulo date -d '20171015 + 1 day'
date: invalid date `20171015 + 1 day'
~$ TZ=America/Sao_Paulo date -d '20181021 + 1 day'
date: invalid date `20181021 + 1 day'
在这种情况下,您可以使用UTC:
~$ TZ=UTC date -d '20171015 + 1 day'
Mon Oct 16 00:00:00 UTC 2017
所以试试:
~$ TZ=UTC date +%Y%m%d -d "20141019"
20141019