Python datetime 与 time 模块之间的差异

我试图弄清楚 datetimetime模块之间的区别,以及每个模块应该用于什么。

我知道 datetime既提供日期又提供时间。 time模块有什么用?

这方面的例子将受到赞赏,关于时区的分歧尤其令人感兴趣。

78379 次浏览

时间模块可以在您只需要特定记录的时间时使用——例如,假设您有一个单独的表/文件用于每天的事务,那么您只需要时间。 然而,时间数据类型通常用于存储两个时间点之间的时间 不同

这也可以使用 datetime 完成,但是如果我们只处理特定日期的时间,那么可以使用 time 模块。

日期时间用于存储记录的特定数据和时间。比如租赁公司。到期日期将是一个日期时间数据类型。

time模块主要用于处理 Unix 时间戳; 表示为自 Unix 时代以来的秒数浮点数。datetime模块可以支持许多相同的操作,但是提供了一组更面向对象的类型,并且对时区的支持有限。

如果您对时区感兴趣,那么应该考虑使用 pytz。

坚持 time防止 DST 模糊。

对于 防止日光节约时间(DST)的模糊问题,只使用系统 time模块而不使用 datetime模块。

转换为任何时间格式(包括本地时间)都很容易:

import time
t = time.time()


time.strftime('%Y-%m-%d %H:%M %Z', time.localtime(t))
'2019-05-27 12:03 CEST'


time.strftime('%Y-%m-%d %H:%M %Z', time.gmtime(t))
'2019-05-27 10:03 GMT'

time.time()是一个浮点数,表示自系统纪元以来以秒为单位的时间。time.time()是明确时间戳的理想选择。

如果系统额外运行的 网络时间协议 dæmon,一个结束了一个相当坚实的时间基础。

这是 time模块的 文件

只是注意到 timedatetime多一个数字更精确。

import time as tm
from datetime import datetime as dt
restime = tm.time()
resdtime = dt.timestamp(dt.now())
print("TIME:".rjust(10," "),restime)
print("DATETIME:".rjust(10," "),resdtime)

输出

     TIME: 1637357103.7650678
DATETIME: 1637357103.765067