Cách nào đúng để chuyển đổi thời gian ngây thơ và tzinfo
thành thời gian UTC? Nói rằng tôi có:pytz utc conversion
d = datetime(2009, 8, 31, 22, 30, 30)
tz = timezone('US/Pacific')
cách Đầu tiên, pytz lấy cảm hứng:
d_tz = tz.normalize(tz.localize(d))
utc = pytz.timezone('UTC')
d_utc = d_tz.astimezone(utc)
cách Thứ hai, từ 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)
Không cần phải nói hai phương pháp tạo ra kết quả khác nhau cho khá một vài Múi giờ.
Câu hỏi là - cách phù hợp là gì?
Tôi ngạc nhiên mà không ai xóa 'Cảm ơn' ra khỏi cơ thể của câu hỏi. Hãy xem mất bao lâu để xóa nó! – Art
Theo tính toán của tôi, chỉ có 897 ngày. – Will
Cảm ơn bạn, Will, vì đã sai! – Art