将日期时间对象转换为 UTC 时出现 TypeError

TypeError when converting datetime object in to UTC

我输入的日期是2017-08-22T11:32:31+10:00

我希望将其转换为 UTC,即 2017-08-22+01:32:31

到目前为止的代码

from datetime import datetime, timedelta
from pytz import timezone
import pytz


fmt = "%Y-%m-%d+%H:%M:%S"
now_time = datetime('2017-08-22T11:32:31+10:00')
zone = 'UTC'

now_time = now_time.timezone(zone)
print now_time.strftime(fmt)

错误

now_time = datetime('2017-08-22T11:32:31+10:00')
TypeError: an integer is required

您可以在创建 datetime 对象时使用 dateutil.parser 推断日期时间格式。

import dateutil.parser
your_date = dateutil.parser.parse('2017-08-22T11:32:31+10:00')

接下来可以使用.astimezone函数将your_date转换为UTC:

utc_date = your_date.astimezone(pytz.utc)
print(utc_date)

输出:

2017-08-22 01:32:31+00:00