Linux日期无效

时间:2014-07-10 08:48:03

标签: linux date

我在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有什么问题?

3 个答案:

答案 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