Piszę program, który zajmuje się strefami czasowymi i ich przekraczaniem. Dwie rzeczy, z którymi mam do czynienia najczęściej, tworzą obiekt datetime z "teraz", a następnie lokalizują naiwny obiekt datetime.Czas letni w języku Python
Aby utworzyć obiekt datetime od teraz w Pacyfiku strefy czasowej, jestem obecnie robi to (Python 2.7.2+)
from datetime import datetime
import pytz
la = pytz.timezone("America/Los_Angeles")
now = datetime.now(la)
czy to jest poprawne w odniesieniu do DST? Jeśli nie, przypuszczam, że powinienem:
now2 = la.localize(datetime.now())
Moje pytanie brzmi: dlaczego? Czy ktoś może mi pokazać przypadek, w którym pierwsza jest błędna, a sekundy są prawidłowe?
chodzi o moje sekund pytanie, załóżmy, że miałem naiwną datę i godzinę od jakiegoś użytkownika wejście 9/1/2012 o godzinie 8:00 w Los Angeles, CA. Jest to dobry sposób, żeby dokonać datetime takiego:
la.localize(datetime(2012, 9, 1, 8, 0))
Jeśli nie, w jaki sposób należy budować te datetimes?
Preferowanym sposobem uzyskania aktualnego czasu w danej strefie czasowej jest: 'datetime.now (tz)'. – jfs
@ J.F.Sebastian Podejrzeń, że nie działa niezawodnie z timezones 'pytz', z tych samych powodów konstruktor' datetime' nie działa z nimi. –
to działa: [kiedy 'datetime.now (pytz_timezone)' nie działa?] (Http://stackoverflow.com/q/31886808/4279) – jfs