Python datetime模块与time模块的区别

207 投票
4 回答
93939 浏览
提问于 2025-04-17 02:39

我正在想弄明白 datetime 模块和 time 模块之间的区别,以及它们各自应该用来做什么。

我知道 datetime 模块可以处理日期和时间。那么 time 模块有什么用呢?

如果能举些例子就更好了,特别是关于时区的区别我特别感兴趣。

4 个回答

5

时间模块可以用来处理某个记录的时间,比如说你有一个单独的表格或文件,专门记录每天的交易,这时候你只需要时间就可以了。

不过,时间数据类型通常是用来存储两个时间点之间的时间

当然,也可以用日期时间来处理,但如果我们只是想处理某一天的时间,那么使用时间模块就足够了。

日期时间则是用来存储某个记录的具体日期和时间。比如在租赁公司,截止日期就会用到日期时间这种数据类型。

40

使用 time 来避免夏令时的混淆。

为了避免夏令时(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() 是非常适合进行明确的时间标记的。

如果系统还运行着网络时间协议(NTP)服务,那么你就能得到一个非常可靠的时间基准。

这里是 time 模块的文档

151

time模块主要是用来处理Unix时间戳的;这个时间戳是一个浮点数,表示自Unix纪元以来的秒数。相比之下,datetime模块也能做很多相同的操作,但它提供了一套更面向对象的类型,同时对时区的支持也有限。

撰写回答