我正在向一个服务器发出请求,并得到这样的响应:
result = {"object_type": "window_id",
"cctv_times" : ['1655375216687000', '1655375216717000', '1655375216717000', '1655375216775000']}
我无法理解它使用的时间格式,如果我必须用当前时间向该服务器发出post请求,我无法将python时间戳转换为该格式。
在python中,如果将当前时间转换为时间戳,它看起来像这样:
from datetime import datetime
time_now = datetime.now().strftime("%s%f")
结果如下:
1655375242179881
但是在服务器响应中,即使时间是实时的,在最后已经有几个零了,它的格式是什么?如何将python时间转换成这种格式?
我们知道datetime.now().strftime("%s%f")
是一个以微秒为单位的时间戳(因为%s
是秒,%f
是微秒)。
和1655375216687000
和1655375242179881
的长度相同,这表明源数据也是以微秒为单位的时间戳。(事实上,最后三位数字总是000
,这表明它最初来自一个毫秒精度的源,但值显然是微秒)。
我们可以使用datetime.fromtimestamp
: https://docs.python.org/3/library/datetime.html#datetime.datetime.fromtimestamp
然而,这需要一个以秒为单位的时间,如time.time()
所以我们可以:
from datetime import datetime
datetime.fromtimestamp(int('1655375216687000') / 1e6)
返回datetime.datetime(2022, 6, 16, 11, 26, 56, 687000)