我尝试了以下代码:
>> import dateutil.parser
>>> date=dateutil.parser.parse("2018-11-23T19:0:09Z")
>>> date.strftime("%s")
'1542996009'
不过,根据https://www.unixtimestamp.com/index.php,返回值1542996009对应于2018年11月23日@ 6:00 pm(UTC),应为7:00 pm
从iso-8601格式的日期字符串获取unix时间戳的正确方法是什么?
注意:Unix时间戳是自1970年1月1日星期四00:00:00协调世界时(UTC)起经过的秒数,所以我认为这是一个时区问题,也就是说,值I不在UTC中。
答案 0 :(得分:0)
如果要获取自纪元以来的秒数,可以使用python-dateutil将其转换为datetime对象,然后使用strftime方法将其转换为秒数。
>>> import dateutil.parser as dp
>>> tm = '2018-11-23T19:0:09Z'
>>> tm1 = parsed_t = dp.parse(tm)
>>> tmseconds = parsed_t.strftime('%s')
>>> tmseconds
'1542979809'
转化:
>>> datetime.utcfromtimestamp(1542979809).isoformat()
'2018-11-23T13:30:09
'