/ / Jak mogę usunąć przesunięcie strefy czasowej z datetime w python - python, django, datetime

Jak mogę usunąć przesunięcie strefy czasowej z datetime w python - python, django, datetime

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 № 1

Moż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).