У меня есть метка utc в формате IS8601, и я пытаюсь преобразовать ее в unix-время. Это моя консольная сессия:Как указать часовой пояс (UTC) при конвертации в Unix-время? (Python)
In [9]: mydate
Out[9]: '2009-07-17T01:21:00.000Z'
In [10]: parseddate = iso8601.parse_date(mydate)
In [14]: ti = time.mktime(parseddate.timetuple())
In [25]: datetime.datetime.utcfromtimestamp(ti)
Out[25]: datetime.datetime(2009, 7, 17, 7, 21)
In [26]: datetime.datetime.fromtimestamp(ti)
Out[26]: datetime.datetime(2009, 7, 17, 2, 21)
In [27]: ti
Out[27]: 1247815260.0
In [28]: parseddate
Out[28]: datetime.datetime(2009, 7, 17, 1, 21, tzinfo=<iso8601.iso8601.Utc object at 0x01D74C70>)
Как вы можете видеть, я не могу получить правильное время назад. Час впереди на один, если я использую fromtimestamp(), и он впереди на шесть часов, если я использую utcfromtimestamp()
Любые советы?
Спасибо!
'timegm()' возвращает целое число секунд. Он игнорирует доли секунды. – jfs