Apologies for asking too basic question but I couldn't get it cleared after reading docs. It just seems that I am missing or have misunderstood something too basic here.
Does calling time.time()
from different timezones, at the same time produce different results? This maybe comes down to definition of epoch
, which on the docs (and on my not-so-deep search on the Internet), has no mentions of the timezone.
Also, suppose time.time() has been called from places with different timezones, and converted to UTC datetime
s on their machines, will they all give same UTC time?
From the documentation:
http://docs.python.org/library/time.html?highlight=time.time#module-time
So the answer is: it depends.
time.time()
returns the number of seconds since the UNIX epoch began at 0:00 UTC, Jan 1, 1970. Assuming the machines have their clocks set correctly, it returns the same value on every machine.The return value should be the same, since it's the offset in seconds to the UNIX Epoch.
That being said, if you convert it to a Date using different timezones, the values will, of course, differ.
If, from those Dates, you convert each of them to UTC, then the result has to be the same.
Per the documentation:
Wikipedia says about "Unix epoch":
and it continues
Time and date is fun.
Little known fact: The time zone of Switzerland before 1894 was 34:08 (34 minutes and 8 seconds). After June 1894, it was updated to 29:44. (link)
Yes,
time.time()
returns the number of seconds since an unspecified epoch. Note that on most systems, this does not include leap seconds, although it is possible to configure your system clock to include them. On cpython,time.time
is implemented as a call to the C functiontime
, which per §27.23.2.4.2 of the C standard does not have to use a specified epoch:On virtually every OS (including Linux, Mac OSX, Windows, and all other Unixes), the epoch is 1970-1-1, 00:00 UTC, and on these systems
time.time
is timezone-independent.