Python'da "dün" tarihini biçimlendirme


232

"Dünün" tarihini MMDDYYPython'da bu biçimde bulmam gerekiyor .

Örneğin, bugünün tarihi şu şekilde temsil edilir: 111009

Bugün için bunu kolayca yapabilirim ama bunu "dün" için otomatik olarak yapmakta zorlanıyorum.

Yanıtlar:


387

kullanım datetime.timedelta()

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

1
Pandalarla çalışıyorsanız, şunları da kullanabilirsiniz:print((pd.to_datetime('Today') - pd.Timedelta('1 days')).strftime('%m%d%y'))
etna

Seçenekleri ararsanız, Sarkaç ( pendulum.eustace.io ) da kullanabilirsiniz : pendulum.now (). Subtract (days = -1) .strftime ('% m% d% y')
AFD

165
from datetime import datetime, timedelta

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

21

Bu istediğinizi yapmalıdır:

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

1
UTC dengesi 0'daki kişilerin tarihini neden sistemin yerel saat dilimindeki tarihten daha fazla önemsiyorsunuz?
Jeffrey Harris

1
Kodumdan, veritabanı kullanımında sık sık UTC'yi önemsediğinizi kopyaladım. UTC şeyler kaldırıldı.
Stef

7

tüm cevaplar doğrudur, ama zaman deltasının olumsuz argümanları kabul ettiğini belirtmek isterim .

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

5

Bunu biraz daha uluslararası hale getirebilir ve tarihi uluslararası standartlara göre biçimlendirebilir miyim, ABD'de yaygın olan garip ay-gün yılında değil mi?

from datetime import datetime, timedelta

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

Birleşik Devletler'de garip bir tarih biçimi kullandığımızı kabul ediyorum, ancak OP özellikle bu tür ``% m% d% y '' olan garip biçim istedi.
DaveL17

@ DaveL17, adil bir nokta. Bu soruya rastlayan ABD dışındaki herkesin cevabını bırakacağım.
Arvid Bäärnhielm

2

Chris tarafından verilen cevabı genişletmek için

tarihi belirli bir biçimde bir değişkende saklamak istiyorsanız, bu bildiğim kadarıyla en kısa ve en etkili yoldur

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

Bir tamsayı olarak istiyorsanız (ki bu yararlı olabilir)

>>> yesterday = int((date.today() - timedelta(days=1)).strftime('%m%d%y'))
>>> yesterday
20817
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.