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 转换的日期时间对象格式的主要内容,如果未能解决你的问题,请参考以下文章