将datetime对象转换为UTC时的TypeError

时间:2017-08-22 04:51:20

标签: python datetime timezone timedelta

我的输入日期为 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

1 个答案:

答案 0 :(得分:1)

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

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