【问题标题】:PDT to UTC converted datetime object formatPDT 到 UTC 转换的日期时间对象格式
【发布时间】:2016-08-27 09:59:22
【问题描述】:

我需要找到与 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”类型。

有人帮助我实现同样的方法。

【问题讨论】:

    标签: python datetime


    【解决方案1】:

    不要混淆 datetime.datetime 等对象和 '2016-04-02 00:00:00' 字符串等可打印表示。你可以使用.strftime() method获得任何你喜欢的格式。

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

    评论建议您需要一个naive datetime 对象。要删除时区信息,您可以使用.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 参数以消除歧义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-14
      • 2021-09-27
      • 2023-03-23
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多