Как найти предыдущий месяц в формате ГГГГ / ММ - PullRequest
0 голосов
/ 24 сентября 2019

Это довольно просто.Мне нравится находить предыдущий месяц для текущего времени, но в формате даты ГГГГ / ММ.В идеале использовать Datetime.

Ответы [ 3 ]

2 голосов
/ 24 сентября 2019

Используйте months с relativedelta:

>>> from dateutil.relativedelta import relativedelta
>>> (datetime.now() - relativedelta(months=1)).strftime('%Y/%m')
'2019/08'

Это относится к случаю, который вы сказали:

>> (datetime.strptime('01/03/2019', '%d/%m/%Y') - relativedelta(months=1)).strftime('%Y/%m')
'2019/02'
0 голосов
/ 24 сентября 2019

Используя только модуль datetime из стандартной библиотеки, мы можем получить месяц и год за 15 дней до начала нашего месяца:

from datetime import date, timedelta

def previous_month():
    format = '%Y/%m'
    d = date.today().replace(day=1) # first day of the month
    return date.strftime(d-timedelta(days=15), format) # 15 days earlier is in the previous month

previous_month()
# '2019/08    
0 голосов
/ 24 сентября 2019
from datetime import datetime, timedelta
(datetime.now() - timedelta(days=30)).strftime('%Y/%m')

Этого может быть достаточно в зависимости от ваших потребностей, более сложный подход может использовать библиотеки из pip, например dateutil

from dateutil.relativedelta import relativedelta
(datetime.now() - relativedelta(months=1)).strftime('%Y/%m')

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...