Ваше время кортежи не представляют время в формате UTC. Если это ваш часовой пояс, а правила смещения utc для соответствующих времен те же, что и сейчас, или если библиотека времени C имеет доступ к исторической базе данных часовых поясов на вашей платформе, вы можете передать временные кортежи в time.mktime()
, чтобы получить " секунд с начала эпохи ":
#!/usr/bin/env python
import time
x = {'time': [(2015, 6, 3, 10, 41, 3), (2015, 6, 3, 20, 32, 21)]}
x['time'] = [time.mktime(tt + (-1,)*3) for tt in x['time']]
в противном случае, вы должны использовать pytz
, чтобы получить доступ к базе данных TZ на всех платформах и вычислить правильные„секунд с начала эпохи“(POSIX метки времени), соответствующие времени ввода кортежей:
#!/usr/bin/env python
from datetime import datetime
import pytz # $ pip install pytz
import tzlocal # $ pip install tzlocal
local_timezone = tzlocal.get_localzone() # pytz tzinfo representing local time
epoch = datetime(1970, 1, 1, tzinfo=pytz.utc)
x = {'time': [(2015, 6, 3, 10, 41, 3), (2015, 6, 3, 20, 32, 21)]}
x['time'] = [(local_timezone.localize(datetime(*tt), is_dst=None) - epoch).total_seconds()
for tt in x['time']]
Я пробовал несколько вещей с конвертированием с использованием даты и времени, но все еще не получаю то, что хочу на en d.;/ –
Да, это вычисление можно выполнить. Покажите код, который вы попробовали, чтобы мы могли объяснить, почему он не работает и не исправил его. – dsh
@Kyll: вопрос, очевидно, не слишком широк. Он имеет краткий ответ. – jfs