将日期时间对象转换为 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
我输入的日期是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