Python datetime模块与time模块的区别
我正在想弄明白 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
模块也能做很多相同的操作,但它提供了一套更面向对象的类型,同时对时区的支持也有限。