Python的time.time()是返回本地时间戳还是UTC时间戳?

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

解决办法

time.time()函数以秒为单位,返回自纪元以来的秒数。 请注意,"纪元"被定义为UTC中1970年1月1日的开始。 所以纪元是以UTC为单位定义的,并建立了一个全球性的时间时刻。 无论你在哪里,"秒过纪元"(time.time())在同一时刻返回相同的值。

这是我在电脑上运行的一些输出样本,也是将其转换为一个字符串。

Python 2.7.3 (default, Apr 24 2012, 00:00:54) 
[GCC 4.7.0 20120414 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> ts = time.time()
>>> print ts
1355563265.81
>>> import datetime
>>> st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
>>> print st
2012-12-15 01:21:05
>>>

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

评论(12)

这是针对时间戳的**文本形式,可以在你的文本文件中使用。(过去问题的标题是不同的,所以这个答案的介绍被改变了,以澄清它可以被解释为时间。[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
评论(6)

根据#squiguy的回答,为了得到一个真正的时间戳,我将从float中键入它。

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

至少是这样的概念。

评论(9)