How can I get the number of milliseconds since epoch?
Note that I want the actual milliseconds, not seconds multiplied by 1000. I am comparing times for stuff that takes less than a second and need millisecond accuracy. (I have looked at lots of answers and they all seem to have a *1000)
I am comparing a time that I get in a POST request to the end time on the server. I just need the two times to be in the same format, whatever that is. I figured unix time would work since Javascript has a function to get that
time.time() * 1000
will give you millisecond accuracy if possible.Returns a 6 digit number, microsecond. The last 3 digits are useless in PC since it works with ticks, which is slower than microsecond. The first 3 digits should be enough for your need.
int(time.time() * 1000)
will do what you want.time.time()
generally returns a float value with double precision counting seconds since epoche, so multiplying it does no harm to the precision.Another word to the misleading answer of @kqr:
time.clock()
does not give you the time of the epoch. It gives you the time that the process ran on the CPU for Unix, or the time passed since the first call to the function on Windows, see the python docs.Also it's true that the docs state, that
time.time()
is not guaranteed to give you ms precision. Though this statement is mainly ment for you to make sure not to rely on this precision on embedded or praehistoric hardware, and I'm not aware of any example, where you actually wouldn't get ms precision.I see many people suggesting
time.time()
. Whiletime.time()
is an accurate way of measuring the actual time of day, it is not guaranteed to give you millisecond precision! From the documentation:This is not the procedure you want when comparing two times! It can blow up in so many interesting ways without you being able to tell what happened. In fact, when comparing two times, you don't really need to know what time of day it is, only that the two values have the same starting point. For this, the
time
library gives you another procedure:time.clock()
. The documentation says:Use
time.clock()
.Or if you just want to test how fast your code is running, you could make it convenient for yourself and use
timeit.timeit()
which does all of the measuring for you and is the de facto standard way of measuring elapsed time in code execution.Using datetime: