Python time模块中的time.time()返回的是系统时间还是UTC时间?
当前回答
这是针对可以在文本文件中使用的时间戳的文本形式。(这个问题的标题在过去是不同的,所以这个答案的介绍被改变了,以澄清它如何解释为时间。[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
其他回答
这是针对可以在文本文件中使用的时间戳的文本形式。(这个问题的标题在过去是不同的,所以这个答案的介绍被改变了,以澄清它如何解释为时间。[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'))
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库将其转换为人类可读的字符串。
我最终决定:
>>> import time
>>> time.mktime(time.gmtime())
1509467455.0
根据来自#squiguy的答案,为了获得一个真实的时间戳,我将从float类型转换它。
>>> import time
>>> ts = int(time.time())
>>> print(ts)
1389177318
至少这是一个概念。
推荐文章
- 得到熊猫栏目的总数
- 从pandas DataFrame中删除名称包含特定字符串的列
- Mock vs MagicMock
- 如何阅读一个。xlsx文件使用熊猫库在iPython?
- 如何访问熊猫组由数据帧按键
- Pandas和NumPy+SciPy在Python中的区别是什么?
- 将列表转换为集合会改变元素的顺序
- 如何在matplotlib更新一个情节
- TypeError: ` NoneType `对象在Python中不可迭代
- 如何在Vim注释掉一个Python代码块
- python标准库中的装饰符(特别是@deprecated)
- 如何从外部访问本地Django web服务器
- 删除字符串的最后3个字符
- 在python中执行no-op的标准方法是什么?
- 如何从生成器构建numpy数组?