Форматирование "вчерашней" даты в python - программирование

Форматирование "вчерашней" даты в python

Мне нужно найти "вчерашнюю" дату в этом формате MMDDYY в Python.

Так, например, сегодня дата будет представлена ​​следующим образом: 111009

Я могу легко сделать это на сегодня, но у меня проблемы с этим автоматически для "вчера".

4b9b3361

Ответ 1

Используйте datetime.timedelta()

>>> from datetime import date, timedelta
>>> yesterday = date.today() - timedelta(days=1)
>>> yesterday.strftime('%m%d%y')
'110909'

Ответ 2

from datetime import datetime, timedelta

yesterday = datetime.now() - timedelta(days=1)
yesterday.strftime('%m%d%y')

Ответ 3

Это должно делать то, что вы хотите:

import datetime
yesterday = datetime.datetime.now() - datetime.timedelta(days = 1)
print yesterday.strftime("%m%d%y")

Ответ 4

import datetime
now = datetime.datetime.now()
now -= datetime.timedelta(days=1)
print now.strftime("%m%d%y")

Ответ 5

Это должно сделать трюк. Украден из список рассылки python.

from datetime import datetime, timedelta

today = datetime.today()
yesterday = today - timedelta(1)

Ответ 6

все ответы правильные, но я хочу упомянуть, что время delta принимает отрицательные аргументы.

>>> from datetime import date, timedelta
>>> yesterday = date.today() + timedelta(days=-1)
>>> print(yesterday.strftime('%m%d%y')) #for python2 remove parentheses 

Ответ 7

Чтобы расширить ответ, полученный Chris

если вы хотите сохранить дату в переменной в определенном формате, это самый короткий и самый эффективный способ, насколько я знаю

>>> from datetime import date, timedelta                   
>>> yesterday = (date.today() - timedelta(days=1)).strftime('%m%d%y')
>>> yesterday
'020817'

Если вы хотите, чтобы это целое число (что может быть полезно)

>>> yesterday = int((date.today() - timedelta(days=1)).strftime('%m%d%y'))
>>> yesterday
20817

Ответ 8

Здесь вы можете найти все коды форматов строк: http://au2.php.net/strftime

In [1]: import datetime

In [2]: today=datetime.date.today()

In [3]: yesterday=today-datetime.timedelta(1)

In [4]: yesterday.strftime('%m%d%y')
Out[4]: '110909'

Ответ 9

Могу ли я просто сделать это несколько более международным и форматировать дату в соответствии с международным стандартом, а не в странный месяц-день-год, который распространен в США?

from datetime import datetime, timedelta

yesterday = datetime.now() - timedelta(days=1)
yesterday.strftime('%Y-%m-%d')