UTC字符串转Unix时间戳Python转换

4

我有一个UTC时间戳列表,以以下字符串格式存储:

'20170124T1815'

Python中是否有函数将这些字符串转换为Unix时间?我已经尝试过:

dt = datetime.datetime.utcnow()
calendar.timegm(dt.utctimetuple())
(datetime.datetime.utcnow('20170127T2131').strftime('%Y-%m-%d %H:%M:%S'))

但这些对我来说并不起作用,因为这些函数不是为接收参数而设计的。
1个回答

4
你需要将字符串 '20170124T1815' 转换成日期时间实例:
import datetime

dt = datetime.datetime.strptime('20170124T1815', '%Y%m%dT%H%M')

然后使用timestamp()方法转换为UNIX时间:

ut = dt.timestamp()
# -> 1485281700.0

以下是文档的翻译:

datetime.timestamp()

返回与datetime实例相对应的POSIX时间戳。返回值是一个类似于time.time()返回值的浮点数。

编辑

对于Python版本< 3.3,您可以使用:

ut = (dt - datetime.datetime(1970, 1, 1)).total_seconds()

或者,您可以使用:

import time

ut = time.mktime(dt.timetuple())

感谢Peter DeGlopper的贡献。

谢谢,但是我遇到了一个错误,提示 AttributeError: 'datetime.datetime' 对象没有属性 'timestamp'。 - coja7723
我只导入了datetime。 - coja7723
timestamp() 函数是在 Python 3.3 版本中新增的。你使用的是哪个版本的 Python? - Laurent LAPORTE
1
对于没有 .timestamp() 版本的情况,我更喜欢使用 time.mktime(dt.timetuple()) - Peter DeGlopper
@PeterDeGlopper 是的,我只是复制并调整了文档中提供的解决方案。 - Laurent LAPORTE
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接