¿Cuándo falla `datetime.now (pytz_timezone)`?

delorean docs mostrar esta manera aobtener la hora actual en una zona horaria determinada utilizandodatetime:

from datetime import datetime
from pytz import timezone

EST = "US/Eastern"
UTC = "UTC"

d = datetime.utcnow()
utc = timezone(UTC)
est = timezone(EST)
d = utc.localize(d)
d = est.normalize(EST)

y compárelo con el código basado en delorian:

from delorean import Delorean

EST = "US/Eastern"

d = Delorean(timezone=EST)

Yo creo eldatetime El ejemplo debe escribirse como:

from datetime import datetime
import pytz

eastern_timezone = pytz.timezone("US/Eastern")
d = datetime.now(eastern_timezone)

eso es más conciso.

¿Hay algún caso en que el último ejemplo de código falle mientras el primero sigue funcionando?

Actualizar: El ejemplo actual:

from datetime import datetime
import pytz

d = datetime.utcnow()
d = pytz.utc.localize(d)

est = pytz.timezone('US/Eastern')
d = est.normalize(d)
return d

eso todavía es demasiado detallado.

La pregunta sigue en pie:¿necesita el viaje de ida y vuelta explícito a través de utc ytz.normalize() o puedes usardatetime.now(tz) ¿en lugar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta