quando `datetime.now (pytz_timezone)` falha?
delorean
docs mostre esse caminho paraobter a hora atual em um determinado fuso horário usandodatetime
:
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)
e compare-o com o código baseado em delorian:
from delorean import Delorean
EST = "US/Eastern"
d = Delorean(timezone=EST)
Acredito adatetime
O exemplo deve ser escrito como:
from datetime import datetime
import pytz
eastern_timezone = pytz.timezone("US/Eastern")
d = datetime.now(eastern_timezone)
isso é mais conciso.
Existem casos em que o último exemplo de código falha enquanto o primeiro continua funcionando?
Atualizar: o exemplo atual:
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
isso ainda é muito detalhado.
A questão ainda permanece:você precisa da viagem de ida e volta explícita via utc etz.normalize()
ou você pode usardatetime.now(tz)
em vez de?