Sto scrivendo un programma che si occupa molto con fusi orari e che li attraversano. Le due cose che mi occupo di più sono la creazione di un oggetto datetime da "now" e quindi la localizzazione di un oggetto datetime ingenuo.ora legale in Python
Per creare un oggetto datetime da ora nel fuso orario del Pacifico, Attualmente sto facendo questo (python 2.7.2+)
from datetime import datetime
import pytz
la = pytz.timezone("America/Los_Angeles")
now = datetime.now(la)
È questo corretto per quanto riguarda l'ora legale? In caso contrario, suppongo di doverlo fare:
now2 = la.localize(datetime.now())
La mia domanda è: perché? Qualcuno può mostrarmi un caso in cui il primo è sbagliato e il secondo è giusto?
quanto riguarda la mia domanda secondi, supponiamo che ho avuto una data ingenua e ora da qualche input dell'utente per 9/1/2012 alle 8:00 am a Los Angeles, CA. È il modo giusto per fare il datetime in questo modo:
la.localize(datetime(2012, 9, 1, 8, 0))
Se no, come devo essere la costruzione di questi datetimes?
il modo preferibile per ottenere l'ora corrente in un determinato fuso orario è: 'datetime.now (tz)'. – jfs
@ J.F.Sebastian Sospetto che non funzioni in modo affidabile con i fusi orari 'pytz', per gli stessi motivi per cui il costruttore' datetime' non funziona con loro. –
funziona: [quando fa 'datetime.now (pytz_timezone)' fallisce?] (Http://stackoverflow.com/q/31886808/4279) – jfs