PDT到UTC转换的日期时间对象格式

时间:2016-05-02 15:12:26

标签: python datetime

我需要找到PDT时间的UTC等效时间。

这样我就实现了如下代码:

        utc = pytz.utc
        local = pytz.timezone ("America/Los_Angeles")
        begin_localize = local.localize(begin)
        begin = begin_localize.astimezone(utc)

        end_localize = local.localize(end)
        end = end_localize.astimezone(utc)

生成输出如下:

2016-04-02 07:00:00+00:00

类型如下:

<type 'datetime.datetime'>

即使它工作正常,我的后端也需要一个格式如下的值:

2016-04-02 00:00:00 

也应该是'datetime.datetime'类型。

有人帮助我实现同样的目标。

1 个答案:

答案 0 :(得分:0)

不要混淆datetime.datetime之类的对象及其可打印的表示形式,例如'2016-04-02 00:00:00'字符串。您可以使用.strftime() method获得您喜欢的任何格式。

  

我的后端需要一个格式如下的值:
  2016-04-02 00:00:00
  也应该是类型'datetime.datetime'。

评论建议你想要一个naive日期时间对象。要删除时区信息,您可以使用.replace()方法:

naive_dt = begin_localize.replace(tzinfo=None)

你可以直接得到代表utc时间的天真物体:

# <local time> == <utc time> + <utc offset> by definition
# <utc time> = <local time> - <utc offset>
naive_utc_dt = naive_local - local_timezone.utcoffset(naive_local)

注意:naive_local表示的时间在本地时区可能不明确甚至不存在(例如,在DST转换期间)。如有必要,请传递is_dst参数以消除歧义。