it-swarm.com.de

Datum "gestern" in Python formatieren

Ich muss das Datum von gestern in diesem Format MMDDYY in Python finden.

Das heutige Datum würde zum Beispiel folgendermaßen dargestellt: 111009

Ich kann das problemlos für heute machen, aber ich habe Schwierigkeiten, dies automatisch für "gestern" zu tun.

176
y2k
>>> from datetime import date, timedelta
>>> yesterday = date.today() - timedelta(1)
>>> print yesterday.strftime('%m%d%y')
'110909'
296
Jarret Hardie
from datetime import datetime, timedelta

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

Dies sollte tun, was Sie wollen:

import datetime
yesterday = datetime.datetime.now() - datetime.timedelta(days = 1)
print yesterday.strftime("%m%d%y")
15
Stef
import datetime
now = datetime.datetime.now()
now -= datetime.timedelta(days=1)
print now.strftime("%m%d%y")
7
Ned Batchelder

Das sollte den Trick tun. Gestohlen aus der Python-Mailingliste .

from datetime import datetime, timedelta

today = datetime.today()
yesterday = today - timedelta(1)
4
William Brendel

Um auf die Antwort von Chris zu erweitern.

wenn Sie das Datum in einer Variablen in einem bestimmten Format speichern möchten, ist dies meines Wissens der kürzeste und effektivste Weg

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

Wenn Sie es als Ganzzahl wünschen (was nützlich sein kann)

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

alle Antworten sind korrekt, aber ich möchte erwähnen, dass die Zeit Delta negative Argumente akzeptiert

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

Sie können alle String-Formatcodes hier finden: 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'
1
unutbu

Könnte ich dies nur etwas internationaler machen und das Datum nach internationalem Standard formatieren und nicht in dem seltsamen Monatstagesjahr, das in den USA üblich ist?

from datetime import datetime, timedelta

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