web-dev-qa-db-ja.com

pythonで「昨日」の日付をフォーマットする

Pythonでこの形式のMMDDYYで「昨日」の日付を見つける必要があります。

したがって、たとえば、今日の日付は次のように表されます:111009

今日はこれを簡単に行うことができますが、「昨日」の間は自動的に実行できません。

193
y2k

datetime.timedelta() を使用します

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

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

これはあなたが望むことをするはずです:

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

これでうまくいくはずです。 pythonメーリングリスト から盗まれた。

from datetime import datetime, timedelta

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

すべての答えは正しいですが、その時間差負の引数を受け入れるに言及したいと思います。

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

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
2
Pär Berge

すべての文字列形式コードは次の場所にあります。 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

これをやや国際化し、米国で一般的な奇妙な月日年ではなく、国際標準に従って日付をフォーマットするだけですか?

from datetime import datetime, timedelta

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