Python time模块中的time.time()返回的是系统时间还是UTC时间?
当前回答
在特定的时区里没有所谓的“epoch”。epoch被定义为一个特定的时间点,因此如果您改变了时区,时间本身也会改变。具体来说,这个时间是1970年1月1日00:00:00 UTC。因此,time.time()返回自epoch以来的秒数。
其他回答
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库将其转换为人类可读的字符串。
根据来自#squiguy的答案,为了获得一个真实的时间戳,我将从float类型转换它。
>>> import time
>>> ts = int(time.time())
>>> print(ts)
1389177318
至少这是一个概念。
我最终决定:
>>> import time
>>> time.mktime(time.gmtime())
1509467455.0
要使用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)
时间戳总是utc的时间,但是当你调用datetime.datetime.fromtimestamp时,它会返回你的本地时区的时间对应于这个时间戳,所以结果取决于你的语言环境。
>>> import time, datetime
>>> time.time()
1564494136.0434234
>>> datetime.datetime.now()
datetime.datetime(2019, 7, 30, 16, 42, 3, 899179)
>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2019, 7, 30, 16, 43, 12, 4610)
存在不同行为的漂亮库箭头。在同样的情况下,它返回UTC时区的时间对象。
>>> import arrow
>>> arrow.now()
<Arrow [2019-07-30T16:43:27.868760+03:00]>
>>> arrow.get(time.time())
<Arrow [2019-07-30T13:43:56.565342+00:00]>
推荐文章
- 把if-elif-else语句放在一行中?
- 我如何结合两个数据框架?
- 如何计数列表中唯一值的出现
- 如何在JavaScript中获得时区名称?
- 为什么Pycharm的检查人员抱怨“d ={}”?
- 如何JSON序列化集?
- 在python中,年龄从出生日期开始
- 使用pip安装SciPy
- 在Python中,我应该如何测试变量是否为None, True或False
- 如何在Python中从毫秒创建datetime ?
- 如何解窝(爆炸)在一个熊猫数据帧列,成多行
- 如何使用pip安装opencv ?
- 在pip冻结命令的输出中“pkg-resources==0.0.0”是什么
- 格式y轴为百分比
- 熊猫连接问题:列重叠但没有指定后缀