Odpowiedzi:
Posługiwać się datetime.timedelta()
>>> from datetime import date, timedelta
>>> yesterday = date.today() - timedelta(days=1)
>>> yesterday.strftime('%m%d%y')
'110909'
from datetime import datetime, timedelta
yesterday = datetime.now() - timedelta(days=1)
yesterday.strftime('%m%d%y')
To powinno zrobić, co chcesz:
import datetime
yesterday = datetime.datetime.now() - datetime.timedelta(days = 1)
print yesterday.strftime("%m%d%y")
wszystkie odpowiedzi są poprawne, ale chcę wspomnieć, że delta czasu przyjmuje negatywne argumenty .
>>> from datetime import date, timedelta
>>> yesterday = date.today() + timedelta(days=-1)
>>> print(yesterday.strftime('%m%d%y')) #for python2 remove parentheses
Czy mogę po prostu uczynić to nieco bardziej międzynarodowym i sformatować datę zgodnie z międzynarodowym standardem, a nie w dziwnym miesiącu-dniu-roku, który jest powszechny w Stanach Zjednoczonych?
from datetime import datetime, timedelta
yesterday = datetime.now() - timedelta(days=1)
yesterday.strftime('%Y-%m-%d')
Aby rozwinąć odpowiedź udzieloną przez Chrisa
jeśli chcesz przechowywać datę w zmiennej w określonym formacie, jest to najkrótsza i najskuteczniejsza metoda, o ile mi wiadomo
>>> from datetime import date, timedelta
>>> yesterday = (date.today() - timedelta(days=1)).strftime('%m%d%y')
>>> yesterday
'020817'
Jeśli chcesz to jako liczbę całkowitą (co może być przydatne)
>>> yesterday = int((date.today() - timedelta(days=1)).strftime('%m%d%y'))
>>> yesterday
20817
print((pd.to_datetime('Today') - pd.Timedelta('1 days')).strftime('%m%d%y'))