I am making a request to one of server and getting response like this:
result = {"object_type": "window_id",
"cctv_times" : ['1655375216687000', '1655375216717000', '1655375216717000', '1655375216775000']}
I am not able to understand the time format it is using and if I have to make a post request to that server with the current time, I am unable to convert the python timestamp into that format.
In python, if I convert the current time into a timestamp, it looks like this:
from datetime import datetime
time_now = datetime.now().strftime("%s%f")
This gives me results in something like:
1655375242179881
But in server response, there are already a few zeros at the end even though the time is live from there, what is the format and how to convert python time into that format?
We know that datetime.now().strftime("%s%f") is a timestamps measured in microseconds (since %s is seconds and %f is microseconds).
And 1655375216687000 and 1655375242179881 are the same length, which suggests your source data is also a timestamp measured in microseconds. (The fact that the last three digits are always 000 suggests that it was originally derived from a source with milliseconds precision, but the value is clearly microseconds).
We can use datetime.fromtimestamp: https://docs.python.org/3/library/datetime.html#datetime.datetime.fromtimestamp
However this expects a time in seconds, "as returned by time.time()"
So we can:
from datetime import datetime
datetime.fromtimestamp(int('1655375216687000') / 1e6)
Which returns datetime.datetime(2022, 6, 16, 11, 26, 56, 687000)