python datetime需要安装_闲话python 38: time与datetime

开发与实际问题相关的项目时,难免会需要处理时间信息。在python中,开发者可以使用多个内置模块处理时间,这些内置模块在一些功能上可能存在重合点,但是需要了解这些模块的侧重点差异。本文就讨论一下python中处理时间最常用的time和datetime这两个模块。time模块侧重点是处理与操作系统更接近的时间,其依赖的基本数据结构是时间戳和结构化的时间数据。需要知道的是,time所提供的功能的具体使用可能在不同的操作系统中存在差异。为了保证跨平台的通用性,可以使用datetime模块来进行时间的处理。datetime提供的功能更加符合人们对时间的思维习惯,因此在处理日常时间时更加方便和直观。最后还会讨论一下时区相关的问题,如果所开发的程序需要进行国际化的话,时区应该是必须要了解的。

1. time模块

time提供了丰富的接口来获取时间戳,以及时间戳与结构化时间数据之间的转换。在python2中还常常使用clock函数,不过在python3.3之后就不建议使用了。time.time()用于获取时间戳,该时间戳是相对于1970年1月1日的秒数。使用time.gmtime()函数可以将时间戳转换为0时区的结构化数据。time.localtime()函数可以将时间戳转换为本地时区的结构化数据。time.ctime()函数可以将时间戳转换为人类可读的形式。还有一些其他函数的功能和使用方法在以下的演示中说明。

b9df9a9f92b888e3447d76a7b04eb29e.png

2. datetime模块

datetime提供了比较高阶的时间处理接口,甚至可以直接进行时间运算,这对于需要计算时间数据的项目而言能够提升不少效率。datetime提供了时间戳与datetime数据结构相互转换的接口,这对于沟通这两个常用模块而言是非常不错的。timedelta提供了时间差的数据结构,这为时间的计算提供了友好的基础。在一些第三方模块中,虽然自定义了时间处理,但实际上仍然是使用python内建的datetime,比如django。掌握datetime对于熟练处理第三方模块中的时间也是至关重要的。

e873d10453adc1cd833899435bc14d83.png

3. 时区

在上面的演示中,其实已经提到了一些时区的概念,比如0时区。我们知道,同一时刻在不同时区中的时间读数是不一样的,但是不同时区使用的时间戳是一样的,都是以第0时区来进行定义的。比如我们可以使用utcfromtimestamp函数将时间戳转换为0时区的datetime,我们也可以对datetime对象的时区进行修改。以下演示说明了时区的修改方法以及修改之后的表现。

d80e25152f856b27386fee6b9494ec8b.png

到此,关于python中time与datetime这两个与时间相关的模块就讨论完毕。事实上,我们常用的时间大概是两大类,一类是测量程序运行时间的,另一类是表征现实时间的。对于第一类需求,直接适应time.time()函数即可,对于第二类需求直接使用datetime就行,至于其他的接口并不是太常用。如果需要开发一些网络应用,时区还是需要了解一些,即使不显式使用时区,也可以避免开发过程中遇到与时区相关的错误。本文的notebook版文件在github上的cnbluegeek/notebook仓库中共享,欢迎感兴趣的朋友前往下载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值