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

Posted

技术标签:

【中文标题】PDT 到 UTC 转换的日期时间对象格式【英文标题】:PDT to UTC converted datetime object format 【发布时间】: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”类型。

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

【问题讨论】:

【参考方案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 参数以消除歧义。

【讨论】:

以上是关于PDT 到 UTC 转换的日期时间对象格式的主要内容,如果未能解决你的问题,请参考以下文章

是否有根据日期转换为 PST 或 PDT 的 SQL 函数?

将 PDT/PST 时区列转换为 UTC 时区

日期时间忽略tzinfo?

将 UTC 纪元转换为本地日期

如何将日期字符串转换为 UTC 日期对象?

将 DatePicker 日期转换为 UTC 格式返回 NULL