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

新手上路,请多包涵

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

原文由 Saransh Mohapatra 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 808
2 个回答

time.time() 函数返回自纪元以来的秒数,作为浮点数。请注意,“ 纪元”在 UTC 中定义为 1970 年 1 月 1 日的开始。因此,纪元是根据 UTC 定义的,并建立了一个全球时刻。无论您在地球上的哪个地方,“纪元过去的秒数”( 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 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是针对可在您的文本文件中使用 的时间戳的文本形式。 (以前题目题目不一样,所以改了这个答案的介绍,明确怎么理解为时间。[2016-01-14更新])

您可以使用 .now().utcnow()datetime.datetime 获取字符串形式的时间戳:

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

原文由 pepr 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题