首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pytz utc转换

pytz utc转换
EN

Stack Overflow用户
提问于 2009-08-31 14:22:55
回答 4查看 46.2K关注 0票数 42

将原始时间和tzinfo转换为UTC时间的正确方法是什么?假设我有:

代码语言:javascript
复制
d = datetime(2009, 8, 31, 22, 30, 30)
tz = timezone('US/Pacific')

第一种方式,由pytz启发:

代码语言:javascript
复制
d_tz = tz.normalize(tz.localize(d))
utc = pytz.timezone('UTC')
d_utc = d_tz.astimezone(utc)

第二种方式,来自UTCDateTimeField

代码语言:javascript
复制
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)

不用说,这两种方法在相当多的时区产生不同的结果。

问题是-什么是正确的方式?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-31 16:07:41

您的第一个方法似乎是经过批准的方法,并且应该是DST感知的。

您可以稍微缩短它,因为pytz.utc = pytz.timezone('UTC'),但您已经知道这一点:)

代码语言:javascript
复制
tz = timezone('US/Pacific')
def toUTC(d):
    return tz.normalize(tz.localize(d)).astimezone(pytz.utc)

print "Test: ", datetime.datetime.utcnow(), " = ", toUTC(datetime.datetime.now())
票数 34
EN

Stack Overflow用户

发布于 2014-10-04 15:25:02

将原始时间和tzinfo转换为utc时间的正确方法是什么?

This answer enumerates some issues with converting a local time to UTC

代码语言:javascript
复制
from datetime import datetime
import pytz # $ pip install pytz

d = datetime(2009, 8, 31, 22, 30, 30)
tz = pytz.timezone('US/Pacific')

# a) raise exception for non-existent or ambiguous times
aware_d = tz.localize(d, is_dst=None)
## b) assume standard time, adjust non-existent times
#aware_d = tz.normalize(tz.localize(d, is_dst=False))
## c) assume DST is in effect, adjust non-existent times
#aware_d = tz.normalize(tz.localize(naive_d, is_dst=True))

# convert to UTC
utc_d = aware_d.astimezone(pytz.utc)
票数 7
EN

Stack Overflow用户

发布于 2009-08-31 15:18:23

使用第一种方法。没有理由重新发明时区转换的轮子

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1357711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档