在 Java 和 Python 中使用相同的时间格式

use same time format in Java and Python

我有 2 个模块,第一个正在生成 ingestion_time,如下所示

Long ingestion_time = System.currentTimeMillis();

这个 ingestion_time 的示例输出是

ingestion_time = 446453570778734

现在我在 python 中有了第二个模块,它为同一事件生成 detection_time,如下所示

detection_time = time.time()

这个 detection_time 的示例输出是

detection_time = 1524807106.92

我想让它们采用相同的格式,这样我就可以获得延迟

latency =  detection_time - ingestion_time

两个模块在同一个系统上。

请帮忙!


编辑 1

通过使用

now = long(time.time())
print "detection_time  = %s "%now

我得到 detection_time

detection_time  = 1524808352 

仍然无法与generation_time相比,因为位数不同

generation_time = 1524808352170 

回答

使用下面提到的代码解决了我的问题

now = int(round(time.time() * 1000))
print "detection_time  = %s "%now

您需要的是获取以毫秒为单位的时间。

import time
millis = int(round(time.time() * 1000))
print millis

重复使用:

import time

current_milli_time = lambda: int(round(time.time() * 1000))

然后:

>>> current_milli_time()
1378761833768

已在 here

中找到此答案

您提供的价值

ingestion_time = 446453570778734

根本不正确(基于System.currentTimeMillis())

您需要做的就是将 python 日期乘以 1000

detection_time = 1524807106920 == System.currentTimeMillis()