将本地时间转换为UTC时间(datetime对象)

时间:2016-05-02 11:39:14

标签: python datetime

我正在尝试将当地时间转换为“UTC”时间。

遵循本指南:How do I convert local time to UTC in Python?

但问题在于我们在这里给出的日期类型。

import pytz, datetime
local = pytz.timezone ("America/Los_Angeles")
naive = datetime.datetime.strptime ("2001-2-3 10:11:12", "%Y-%m-%d %H:%M:%S")
local_dt = local.localize(naive, is_dst=None)
utc_dt = local_dt.astimezone (pytz.utc)

在上面的代码输入是“2001-2-3 10:11:12”(字符串),但在我的情况下,它将是一个日期时间对象。

begin = begin.replace(hour=0, minute=0, second=0, microsecond=0)

有人让我知道如何在这里实现转换。

2 个答案:

答案 0 :(得分:0)

您的字符串格式需要一些修改。您只需要在您的月份和日期中使用前导零:

import pytz, datetime
local = pytz.timezone("America/Los_Angeles")
naive = datetime.datetime.strptime ("2001-02-03 10:11:12", "%Y-%m-%d %H:%M:%S")
local_dt = local.localize(naive)
utc_dt = local_dt.astimezone(pytz.utc)

答案 1 :(得分:0)

如果您的输入(begin)不是时间字符串,但它已经是naive (no timezone info) datetime个对象,则删除datetime.strptime()行(将时间字符串解析为{ {1}}对象)来自示例。要将表示本地时间的给定naive datetime对象转换为utc:

datetime