我有日期字符串(YYYYMM 例如:201909。
在 Python 中,如何简单地减去一个月?
from datetime import datetime
Month = '201905'
Month = datetime.strptime(Month, '%Y%m').date()
Month1 = str(Month -1)
Month2 = str(Month -2)
Month3 = str(Month -3)
Month6 = str(Month -6)
Month12 = str(Month - 100)
这不起作用,但我希望能够将“Month”变量设置为“201905”之类的字符串,并从那里计算各种 YYYYMM 字符串。
请您参考如下方法:
此解决方案既简单又稳健。它利用耗时考验的内置包,将带您回到前一年,而不仅仅是从月份数字中减去 (n)。
from datetime import datetime as dt
from dateutil.relativedelta import relativedelta
# User's original values.
string = '201905'
dte = dt.strptime(string, '%Y%m').date()
# Calculate one months previous.
result = dte + relativedelta(months=-1)
# Display path and results
print('Original string value: {}'.format(string))
print('Original datetime value: {}'.format(dte))
print('Result (original minus two months): {}'.format(result))
输出:
Original string value: 201905
Original datetime value: 2019-05-01
Result (original minus one month): 2019-04-01
