Python 箭头毫秒

Wil*_*oat 5 python python-arrow

我想弄清楚一件简单的事情 - 如何将arrow.Arrow对象转换为毫秒。我正在阅读以下线程,但我仍然不清楚如何以毫秒为单位获得一个长数字。

我想要这样的东西:

def get_millis(time: arrow.Arrow):
     ... some magic goes here ...


print(get_millis(time))     
OUTPUT: 
1518129553227 
Run Code Online (Sandbox Code Playgroud)

谢谢

imp*_*dom 5

这是一个不雅的答案:从您链接的问题中,您可以将毫秒作为字符串获取,然后将它们添加到时间戳中:

import arrow
now = arrow.utcnow()
s = now.timestamp
ms = int(now.format("SSS"))
print(s * 1000 + ms)
Run Code Online (Sandbox Code Playgroud)

哪个打印:

1518131043594
Run Code Online (Sandbox Code Playgroud)


小智 5

基本上你正在寻找的财产是

float_timestamp
Run Code Online (Sandbox Code Playgroud)

例如

now_millisecs = round(arrow.utcnow().float_timestamp, 3)
now_microsecs = round(arrow.utcnow().float_timestamp, 6)
Run Code Online (Sandbox Code Playgroud)

如果您不喜欢浮点数,可以从这里获取:

str(now_millisecs).replace('.', '')
Run Code Online (Sandbox Code Playgroud)

为了视觉上的方便和计算的方便(比较等),我个人保留了浮点表示。

  • 如果你想要整数毫秒,而不是四舍五入,转换为字符串,删除小数点,然后转换回整数,你可以乘以 1,000,然后四舍五入:`round(arrow.utcnow().float_timestamp * 1000)`。它更简单、更清晰,而且速度更快。 (2认同)