我需要找到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'类型。
有人帮助我实现同样的目标。
答案 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
参数以消除歧义。