Tarih saatini tarihe nasıl dönüştürebilirim (Python'da)?


646

Bir datetime.datetimenesneyi (örneğin, dönüş değerini Python'daki datetime.datetime.now())bir datetime.datenesneye nasıl dönüştürebilirim ?


16
Bunun için sadece ihtiyacınız varsa datetime.datetime.now(), lütfen bir yöntem olduğunu unutmayın datetime.date.today().
Thierry

from datetime import datetimeTarih from datetime import datetime, date
Josh

Yanıtlar:


984

date()Yöntemi kullanın :

datetime.datetime.now().date()

14
UTC'ye ulaşmak için çok yararlı olabilir -> datetime.datetime.utcnow()ve buna karşılıkdatetime.datetime.utcnow().date()
Nick Brady

2
Thanks @SeanColombo, belirli bir saat diliminde şu anki tarih olmalıdırdatetime.datetime.now(pytz.timezone('US/Pacific')).date()
Monica CEO


62

datetime.datetime.date()Yöntemi kullanın :

datetime.datetime.now().date()

Açıkçası, yukarıdaki ifade IMHO :) olarak yazılabilir ve yazılmalıdır:

datetime.date.today()

14
adamı karıştırmayın.
fiatjaf

1
adil olmak .today()gerekirse , bu cevap (kullanma ) belirtilen örnek soru için en pitoniktir.
Dannid

2
Bugün kullanıyorsanız, bir tarihi karşılaştırırken dikkatli olun. today()bir saat bileşenine de sahiptir. öyleyse yaparsanız: losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')ve sonra if losdat < datetime.datetime.today():her zaman doğru losdatolacaktır, çünkü zaman damgasından önce düşecek gece yarısı bir zaman bileşenine sahip olacaktoday()
Dennis Decoene

3
@DennisDecoene: neden bir nesne istediğinde kullanmak datetime.datetime.today()yerine ? datetime.date.today()datetime.date
17'de tzot

@tzot Evet, ben de işaret etmek istediğim şey buydu ama belirsizdi.
Dennis Decoene

45

Tarih saat nesnesinin date () yöntemiyle datetime nesnesini tarihe dönüştürebilirsiniz:

<datetime_object>.date()

3
import time
import datetime

# use mktime to step by one day
# end - the last day, numdays - count of days to step back
def gen_dates_list(end, numdays):
  start = end - datetime.timedelta(days=numdays+1)
  end   = int(time.mktime(end.timetuple()))
  start = int(time.mktime(start.timetuple()))
  # 86400 s = 1 day
  return xrange(start, end, 86400)

# if you need reverse the list of dates
for dt in reversed(gen_dates_list(datetime.datetime.today(), 100)):
    print datetime.datetime.fromtimestamp(dt).date()

2
Bu yanıtı buraya göndermek mi istediniz? Cevabınız farklı bir soruya yöneltilmiş gibi görünüyor.
Tüm İşçiler

2

için şu kod formunu girebilirsiniz (bugünün tarihi ve Günün Saatleri ve Saatleri) : datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')

'19 -09-09 Pzt 17:37:56 '

ve şu kodu girin ( bugünün tarihi) : datetime.date.today().strftime('%y-%m-%d') '19 -09-10 '

nesne için: datetime.datetime.now().date() datetime.datetime.today().date() datetime.datetime.utcnow().date() datetime.datetime.today().time() datetime.datetime.utcnow().date() datetime.datetime.utcnow().time()


OP datetime.date, strftimedöndürülecek bir dize değil, nesne almak istedi (ref: docs.python.org/3/library/datetime.html#datetime.date.strftime ).
Grzegorz Skibinski
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.