Skip to main content
 首页 » 编程设计

python之如何从 python 中的 YYYYMM 字符串日期中减去月份

2025年05月04日21mq0036

我有日期字符串(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