Python time模块中的time.time()返回的是系统时间还是UTC时间?


当前回答

time.time()函数的作用是:以浮点数的形式返回自epoch开始的秒数。请注意,“epoch”定义为UTC时间1970年1月1日的开始。因此,epoch是根据UTC来定义的,并建立了一个全局时间点。无论你在地球上的什么地方,"seconds past epoch" (time.time())在同一时刻返回相同的值。

下面是我在计算机上运行的一些示例输出,并将其转换为字符串。

>>> import time
>>> ts = time.time()
>>> ts
1355563265.81
>>> import datetime
>>> datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
'2012-12-15 01:21:05'
>>>

ts变量是以秒为单位返回的时间。然后,我使用datetime库将其转换为人类可读的字符串。

其他回答

要使用datetime库获取本地时间戳,请使用Python 3.x

#wanted format: year-month-day hour:minute:seconds

from datetime import datetime

# get time now
dt = datetime.now()
# format it to a string
timeStamp = dt.strftime('%Y-%m-%d %H:%M:%S')

# print it to screen
print(timeStamp)

在特定的时区里没有所谓的“epoch”。epoch被定义为一个特定的时间点,因此如果您改变了时区,时间本身也会改变。具体来说,这个时间是1970年1月1日00:00:00 UTC。因此,time.time()返回自epoch以来的秒数。

Time.time()返回Unix时间戳。 您可以使用datetime库获取本地时间或UTC时间。

import datetime

local_time = datetime.datetime.now()
print(local_time.strftime('%Y%m%d %H%M%S'))

utc_time = datetime.datetime.utcnow() 
print(utc_time.strftime('%Y%m%d %H%M%S'))

time.time()函数的作用是:以浮点数的形式返回自epoch开始的秒数。请注意,“epoch”定义为UTC时间1970年1月1日的开始。因此,epoch是根据UTC来定义的,并建立了一个全局时间点。无论你在地球上的什么地方,"seconds past epoch" (time.time())在同一时刻返回相同的值。

下面是我在计算机上运行的一些示例输出,并将其转换为字符串。

>>> import time
>>> ts = time.time()
>>> ts
1355563265.81
>>> import datetime
>>> datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
'2012-12-15 01:21:05'
>>>

ts变量是以秒为单位返回的时间。然后,我使用datetime库将其转换为人类可读的字符串。

答案可能是两者都不是,也可能都是。

neither: time.time() returns approximately the number of seconds elapsed since the Epoch. The result doesn't depend on timezone so it is neither UTC nor local time. Here's POSIX defintion for "Seconds Since the Epoch". both: time.time() doesn't require your system's clock to be synchronized so it reflects its value (though it has nothing to do with local timezone). Different computers may get different results at the same time. On the other hand if your computer time is synchronized then it is easy to get UTC time from the timestamp (if we ignore leap seconds): from datetime import datetime utc_dt = datetime.utcfromtimestamp(timestamp)

有关如何在各种Python版本中从UTC时间获取时间戳,请参阅如何根据UTC获取从epoch开始转换为秒的日期?