27
estoy un poco confundido por los cambios de horario manipulacióndjango 1.4 timezone.now() vs datetime.datetime.now()
settings.py:
TIME_ZONE = 'Europe/London'
USE_TZ = True
en la cáscara django:
>>> from django.utils import timezone
>>> import datetime
>>> print timezone.now()
2012-05-28 11:19:42.897000+00:00
>>> print timezone.make_aware(datetime.datetime.now(),timezone.get_default_timez
one())
2012-05-28 12:20:03.224000+01:00
¿por qué no son lo mismo con respecto a la luz del día? Ambos deben ser conscientes de la configuración regional, ¿no?
He leído los documentos pero no soy más sabio.
que es un poco contrario a la intuición. ¡Había asumido que timezone.now() me habría dado ahora en la zona horaria predeterminada! No es muy pitónico en mi opinión. El uso de .astimezone() ha solucionado mi problema, gracias. – meepmeep
¿Por qué sigo recibiendo un error cuando hago lo siguiente: >>> import datetime >>> desde la zona horaria de importación de django.utils >>> desde la importación de polls.models Pregunta >>> # crea una instancia de Question con pub_date 30 días en el futuro >>> future_question = Pregunta (pub_date = timezone.now() + datetime.timedelta (days = 30)) >>> # ¿se publicó recientemente? >>> future_question.was_published_recently() verdadera – pitchblack408
>>> future_question.was_published_recently() Rastreo (llamada más reciente pasado): Archivo "", línea 1, en archivo "C: \ Users \ michmar3 \ workspace \ pollsite \ polls \ models.py ", línea 17, en was_p ublished_recently return self.pub_date> = datetime.datetime.now() - datetime.timedelta (days = 1) Archivo" C: \ jython2. 7b2 \ Lib \ datetime.py ", línea 1727, en __ge__ return self .__ cmp (otro)> = 0 Archivo" C: \ jython2.7b2 \ Lib \ datetime.py ", línea 1765, en _datetime__cmp raise TypeError ("No puedo comparar ingenuo y datetimes conscientes ") TypeError: no se puede comparar fechas de programación ingenuas y conscientes –
pitchblack408