我正在编写一个python代码,将linux系统中的日期更改为今天1(动态)。我试过各种组合,但是我无法成功。我搜索了一下,发现我的情景in this question非常接近。
如果我执行带静态值的命令,我可以更改日期:
date --set="$(date +'2013%m%d %H:%M')"
但是,我不想指定年份的硬编码值,即2013年。相反,我想指定类似"%y-1"
的内容,即
date --set="$(date +'%y-1%m%d %H:%M')"
如果我运行上面的命令,我会收到以下错误
[root@ramesh ~]$ date --set="$(date +'%y-1%m%d %H:%M')"
date: invalid date `14-11016 13:05'
答案 0 :(得分:2)
感谢您的回答。我没有尝试你的方法,因为如果你愿意,在处理算术运算时必须再次处理格式化问题。
所以,我想出了一个更简单和更通用的方法
使用此命令
获取previous_year值 date --date='1 years ago'
这给出了上一年的日期。现在,这可以在python程序中用于以下列方式更新系统
"date --set=$(date +'%%y%%m%s %%H:%%M') % previous_year"
这种方法没有什么优点,比如
我可以将此方法应用于日期和月份,例如"1 days ago", "1 month ago"
和+%d, +%m, +%y
值。
例如,date --date='1 years ago' +%y
答案 1 :(得分:0)
date
会根据你的表现解释%y-1
。您需要的是检索当前年份,减1并将此值用作新年。
要获得current_year - 1
,您可以这样做:
previous_year=$((`date +'%y'`-1))
echo $previous_year
>>> 13
现在您只需要使用此变量来设置新日期。