将ISO格式的字符串转换为UNIX时间戳

时间:2018-11-12 08:05:13

标签: python date datetime iso8601 python-datetime

我尝试了以下代码:

>> 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中。

1 个答案:

答案 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

'