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


当前回答

要使用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)

其他回答

根据来自#squiguy的答案,为了获得一个真实的时间戳,我将从float类型转换它。

>>> import time
>>> ts = int(time.time())
>>> print(ts)
1389177318

至少这是一个概念。

我最终决定:

>>> import time
>>> time.mktime(time.gmtime())
1509467455.0

这是针对可以在文本文件中使用的时间戳的文本形式。(这个问题的标题在过去是不同的,所以这个答案的介绍被改变了,以澄清它如何解释为时间。[2016-01-14]更新)

你可以使用datetime.datetime的.now()或.utcnow()来获取时间戳字符串:

>>> import datetime
>>> print datetime.datetime.utcnow()
2012-12-15 10:14:51.898000

正如预期的那样,now和utcnow不同——否则它们的工作方式是一样的:

>>> print datetime.datetime.now()
2012-12-15 11:15:09.205000

你可以显式地将时间戳呈现给字符串:

>>> str(datetime.datetime.now())
'2012-12-15 11:15:24.984000'

或者你可以更明确地按照你喜欢的方式格式化时间戳:

>>> datetime.datetime.now().strftime("%A, %d. %B %Y %I:%M%p")
'Saturday, 15. December 2012 11:19AM'

如果你想要ISO格式,使用对象的.isoformat()方法:

>>> datetime.datetime.now().isoformat()
'2013-11-18T08:18:31.809000'

可以在变量中使用这些变量进行计算和打印,而不需要转换。

>>> ts = datetime.datetime.now()
>>> tf = datetime.datetime.now()
>>> te = tf - ts
>>> print ts
2015-04-21 12:02:19.209915
>>> print tf
2015-04-21 12:02:30.449895
>>> print te
0:00:11.239980

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'))

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