2014-12-08 20 views
10

'da saat dilimini nasıl öğrenebilirim? Python django'da datetime hesaplaması için delorean kullanıyorum. Python django

http://delorean.readthedocs.org/en/latest/quickstart.html

Bu

i

now = Delorean(timezone=settings.TIME_ZONE).datetime 
todayDate = now.date() 

kullanıyorum budur Ama

RuntimeWarning: DateTimeField start_time received a naive datetime (2014-12-09 00:00:00) while time zone support is active. 

Ben farkında

Ben de denedim nasıl bilmek istiyorum bu uyarısını olsun bu da

todayDate = timezone.make_aware(now.date(), timezone=settings.TIME_ZONE) sonra ben Python bir "zaman dilimi farkında tarihten kavramını yok gibi, bir date nesneye veya bir datetime nesne ile bitirmek için çalışıyoruz olup olmadığı açık değil bu

AttributeError: 'datetime.date' object has no attribute 'tzinfo'

+0

"Delorean" da nasıl çalıştığından emin değil, ancak zaman kavramının daha az anlamlı olduğu tarihler için zaman dilimi farkında olabilir. –

+0

https://docs.djangoproject.com/en/dev/topics/i18n/timezones/ – knbk

cevap

24

olsun ".

geçerli zaman diliminde geçerli zamana karşılık gelen bir date nesneyi almak için, kullanmak:

from django.utils.timezone import localtime, now 

localtime(now()).date() 

olduğu sonucunu verir: Eğer alıyoruz şimdiki zaman dilimi farkında UTC datetime; yerel saat dilimine dönüştürüyorsunuz (yani TIME_ZONE); ve sonra ondan tarihi almak. Eğer geçerli saat diliminde geçerli tarihte 00:00:00 karşılık gelen bir datetime nesneyi almak istiyorsanız

, kullanmak istiyorum:

bu ve your other question dayanarak
localtime(now()).replace(hour=0, minute=0, second=0, microsecond=0) 

, bence sen Delorean paketi tarafından kafam karıştı. Django'nun ve Python'un datetime işlevselliğine bağlı kalmanızı öneriyorum.

İlgili konular