这应该很简单,但是我无法正确使用语法。所以,我有一个参数字典如下-
paramDict = {
StartPostingDateFilter": {
"msgPrompt": "Start date",
"dataType": "datetime",
"tableField": [{"table":"TableName",
"field":"ColumnName"}],
"value": ["2006-01-01"]
}
}
StartPostingDateFilter = paramDict['StartPriorDateFilter']['value'][0]
现在,我想从“ StartPriorDateFilter”用户提供的日期值中减去一年。如果是a年,我该如何处理?我想实现以下目标-
If, StartPostingDateFilter = '2006-01-01'
Then create new variable, NewStartPostingDateFilter = '2005-01-01'
谢谢。
最佳答案
您可以使用dateutil:
from dateutil.relativedelta import relativedelta
from dateutil import parser
d = parser.parse(StartPostingDateFilter)
print((d - relativedelta(years=1)).date())
2005-01-01
您还可以使用datetime并替换返回年份的2月29日-1和2月28日(如果是):
d = datetime.strptime(StartPostingDateFilter, "%Y-%m-%d")
sub = d.replace(year=d.year - 1) if (d.month != 2 and d.day) != 29 else datetime(d.year-1, 2, 28)
关于python - 与数据值分开一年;照顾of年,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31303871/