2013-05-15 30 views

回答

5

time.time()返回秒since epoch,所以它沒有定義使用哪個時間標準或區域。

轉換爲使用時間標準:

他們都返回time.struct_time

>>> t = time.time() 
>>> time.localtime(t) 
time.struct_time(tm_year=2013, tm_mon=5, tm_mday=15, tm_hour=2, tm_min=41, tm_sec=49, tm_wday=2, tm_yday=135, tm_isdst=1) 
>>> time.gmtime(t) 
time.struct_time(tm_year=2013, tm_mon=5, tm_mday=15, tm_hour=0, tm_min=41, tm_sec=49, tm_wday=2, tm_yday=135, tm_isdst=0) 
15

技術上,time.time()沒有明確規定,切實,至少在CPython的,它返回的任何格式使用由基礎標準C庫的time功能時間戳。

C標準(不是免費提供的)不會說這是否是GMT,POSIX standard也不是。它只是說:

time()函數將返回從Epoch開始的時間值(以秒爲單位)。

...不用說有關時區什麼,只知道你可以將它傳遞給localtimegmtime獲得在本地或GMT時區是「破舊的時間」。

所以,這是平臺特定的。一個平臺可以返回任何想要的東西time,只要它能夠使localtimegmtime正常工作。

這就是說,它的通常是將是格林威治標準時間,或者,而不是UTC(Windows)或UTC-除了閏秒(大多數其他平臺)。例如,FreeBSD說:

time()函數返回因爲0時0分0秒,1970年1月1日,協調世界時的時間以秒爲單位的值,不包括閏秒。

OS X和其他大多數* BSD系統具有相同的聯機幫助,Windowslinux/glibc還特意返回UTC(含或不含閏秒)等

此外,Python的文件說:

要了解這個時代是什麼,請看gmtime(0)

timegmtime定義把一起,這將是更多的工作爲平臺,比格林尼治時間返回本地時間戳。(也就是說,這個聲明不可能是所有權威的,因爲對於任何POSIX平臺來說實際上並不是這樣,這要感謝閏秒。)