如何在Python中获得时间戳记的纪元秒?

时间:2019-04-17 09:56:14

标签: python

我需要将时间戳转换为秒,在条件语句中使用它,并将其与其他时间戳进行比较。

我尝试使用bash进行操作,但是我根本无法在Python脚本中使用它:

date -d "2019-04-05T10:10:16,841" +%s

产生1554433816

2 个答案:

答案 0 :(得分:2)

获取时期开始时的datetime对象,字符串的datetime对象,并按如下所示减去它们。

import datetime
epoch = datetime.datetime.utcfromtimestamp(0)
dt = datetime.datetime.strptime("2019-04-05T10:10:16,841", "%Y-%m-%dT%H:%M:%S,%f")
epoch =  int((dt - epoch).total_seconds())
print(epoch)
#1554459016

答案 1 :(得分:1)

您可以使用datutil.parser在python中进行转换。 在3.6上测试。

from dateutil import parser

t = '2019-04-05T10:10:16,841'
parsed = parser.parse(t)
unix_timestamp = int(parsed.timestamp())
print(unix_timestamp)

时间戳函数返回浮点数。我使用整数强制转换只是为了减少毫秒,但是如果需要,可以保留它们。

编辑:在2.7上测试:

from dateutil import parser
import time

t = '2019-04-05T10:10:16,841'
parsed = parser.parse(t)
unix_timestamp = int(time.mktime(parsed.timetuple()))
print unix_timestamp

注意:mktime()返回一个浮点数,但没有毫秒。