Sar*_*tra 532 python time timezone
time.time()Python时间模块中是否返回系统的时间或UTC时间?
squ*_*guy 748
该time.time()函数返回自纪元以来的秒数,以秒为单位.请注意,"epoch"定义为1970年1月1日UTC的开头.因此,时代是以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
>>>
Run Code Online (Sandbox Code Playgroud)
该ts变量是在几秒钟内返回的时间.然后我使用datetime库将其转换为字符串,使其成为人类可读的字符串.
pep*_*epr 293
这是用于文本文件中可以使用的时间戳的文本形式.(问题的标题在过去是不同的,所以对这个答案的介绍进行了修改,以澄清它如何被解释为时间.[更新2016-01-14])
您可以使用获得的时间戳作为字符串.now()或.utcnow()的datetime.datetime:
>>> import datetime
>>> print datetime.datetime.utcnow()
2012-12-15 10:14:51.898000
Run Code Online (Sandbox Code Playgroud)
该now不同于utcnow预期-否则他们的工作方式相同:
>>> print datetime.datetime.now()
2012-12-15 11:15:09.205000
Run Code Online (Sandbox Code Playgroud)
您可以显式地将时间戳呈现给字符串:
>>> str(datetime.datetime.now())
'2012-12-15 11:15:24.984000'
Run Code Online (Sandbox Code Playgroud)
或者您可以更加明确地按照您喜欢的方式格式化时间戳:
>>> datetime.datetime.now().strftime("%A, %d. %B %Y %I:%M%p")
'Saturday, 15. December 2012 11:19AM'
Run Code Online (Sandbox Code Playgroud)
如果需要ISO格式,请使用.isoformat()对象的方法:
>>> datetime.datetime.now().isoformat()
'2013-11-18T08:18:31.809000'
Run Code Online (Sandbox Code Playgroud)
您可以在变量中使用它们进行计算和打印而无需转换.
>>> 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
Run Code Online (Sandbox Code Playgroud)
Rud*_*dom 132
根据#squiguy的回答,为了得到一个真正的时间戳,我会从float中输入它.
>>> import time
>>> ts = int(time.time())
>>> print(ts)
1389177318
Run Code Online (Sandbox Code Playgroud)
至少这是概念.
jfs*_*jfs 29
答案可能不是或两者兼而有之.
both:time.time()返回大约自Epoch以来经过的秒数.结果不依赖于时区,因此既不是UTC也不是本地时间.这是POSIX对"大纪元以来的秒"的定义.
两者:time.time()不要求系统的时钟同步,因此它反映了它的价值(尽管它与本地时区无关).不同的计算机可能同时获得不同的结果.另一方面,如果您的计算机时间是同步的,那么很容易从时间戳获得UTC时间(如果我们忽略闰秒):
from datetime import datetime
utc_dt = datetime.utcfromtimestamp(timestamp)
Run Code Online (Sandbox Code Playgroud)关于如何从各种Python版本的UTC时间获取时间戳,请参阅如何根据UTC将日期转换为自纪元以来的秒数?
要使用日期时间库获取本地时间戳,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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1011112 次 |
| 最近记录: |