我有一个包含大约400次系列时间的start_time列表,我将其转换为时间格式:
(2017, 10, 22, 15, 19, 23)
(2017, 10, 22, 15, 19, 35)
(2017, 10, 22, 15, 19, 35)
(2017, 10, 22, 15, 19, 35)
..
..
..
这次是在PDT。我想以UTC时区转换此列表。
我必须将列表转换为时间格式的代码:
y=[tuple(dparse(x).timetuple())[:6] for x in start_time]
我必须将此代码转换为UTC代码:
y_utc = [tuple(dparse(x).astimezone(pytz.utc).timetuple())[:6] for x in y]
使用此我收到错误:
TypeError: Parser must be a string or character stream, not tuple
我也尝试过使用摆锤:
y = [pendulum.parse(x, tz='US/Pacific') for x in start_time]
y_utc = [z.astimezone("UTC") for z in y
然后内核停止或者显示astimezone不可迭代。
所以我需要在utc时区的最终列表。
答案 0 :(得分:0)
此尝试使用datetime
和pytz
模块。首先将它们解析为“US / Pacific”,然后将它们简单地转换为UTC
。此外,您需要解包元组(使用*),然后将它们提供给datetime
构造函数。
from datetime import datetime
import pytz
time_stamps = [(2017, 10, 22, 15, 19, 23), (2017, 10, 22, 15, 19, 35)]
my_timezone = pytz.timezone('US/Pacific')
for time_stamp in time_stamps:
date = datetime(*time_stamp).replace(tzinfo=my_timezone)
print (date.astimezone(pytz.utc))