Jaki jest właściwy sposób zamiany czasu naiwnego i tzinfo
na czas UTC? Say mam:konwersja pytz utc
d = datetime(2009, 8, 31, 22, 30, 30)
tz = timezone('US/Pacific')
Pierwszy sposób pytz inspirowane:
d_tz = tz.normalize(tz.localize(d))
utc = pytz.timezone('UTC')
d_utc = d_tz.astimezone(utc)
Drugi sposób, z UTCDateTimeField
def utc_from_localtime(dt, tz):
dt = dt.replace(tzinfo=tz)
_dt = tz.normalize(dt)
if dt.tzinfo != _dt.tzinfo:
# Houston, we have a problem...
# find out which one has a dst offset
if _dt.tzinfo.dst(_dt):
_dt -= _dt.tzinfo.dst(_dt)
else:
_dt += dt.tzinfo.dst(dt)
return _dt.astimezone(pytz.utc)
trzeba dodawać te dwie metody dają różne wyniki dla sporo strefy czasowe.
Pytanie brzmi - jaka jest właściwa droga?
Jestem zdziwiony, że nikt usunięte 'Thanks' z ciała w rachubę. Zobaczmy, ile czasu potrzeba, aby go usunąć! – Art
Według moich obliczeń, tylko 897 dni. – Will
Dziękuję, Will, za naprawienie błędu! – Art