Używam delorean w moim kodzie.
http://delorean.readthedocs.org/en/latest/quickstart.html#truncation
now = Delorean(timezone=settings.TIME_ZONE).datetime
start = Delorean(datetime.combine(now.date(), rule.start_time),
timezone=settings.TIME_ZONE).datetime
Wydrukuje się w ten sposób
2014-12-05 05:15:00+11:00
W bazie danych przechowuje się w ten sposób
2014-12-04 18:15:00+00`
ponieważ django przechowuje w UTC w bazie danych
Teraz, jak mogę uzyskać datetime zgodnie z bieżącą strefą czasową
Próbowałem tego
Delorean(obj.start_time, timezone=settings.TIME_ZONE).datetime
to wyświetliło
2014-12-04 19:00:00+00:00
parzysty obj.start_time
drukuje również
2014-12-04 19:00:00+00:00
jak mogę to zdobyć
2014-12-05 05:15:00+11:00
Odpowiedzi:
3 dla odpowiedzi № 1Możesz użyć Narzędzia Django dla tego.
from django.utils.timezone import localtime
localtime(obj.start_time)
To zamieni to na datetime
w bieżącej strefie czasowej (która jest TIME_ZONE
domyślnie).