Python每日一练0020

问题

你须要执行简单的日期操做,计算两个日期间隔多少天、某个日期后的多少天是几月几日、转换时间字符串的格式等html

解决方案

使用datetime库中的datetimetimedeltapython

其中datetime类表明一个日期 + 时间,例如2018年4月16日11点00分00秒;timedelta类表明一个日期间隔数据库

对于datetime实例,能够直接进行-数学运算获得一个timedelta实例,也就是两个日期时间的间隔,好比计算两个日期之间有多少天微信

>>> import datetime
>>> a = datetime.datetime(year=2018, month=4, day=16)
>>> b = datetime.datetime(year=2018, month=3, day=5)
>>> delta = a - b
>>> delta.days
42
>>> print(delta)
42 days, 0:00:00

因此咱们也能够让一个datetime实例加上一个timedelta实例,获得一个新的datetime实例,好比说我想计算从今天开始日后20天是几月几日spa

>>> start = datetime.datetime.now()
>>> print(start)
2018-04-16 11:12:50.846262
>>> delta = datetime.timedelta(days=20)
>>> end = start + delta
>>> print(end)
2018-05-06 11:12:50.846262

而且datetime类还提供了strftimestrptime进行字符串和日期时间之间的转换操做code

咱们能够使用strftime将一个datetime实例转换为字符串,也能够用strptime将一个字符串转换为datetime实例,而且本身控制格式htm

>>> dt = datetime.datetime.now()
>>> s = datetime.datetime.strftime(dt, '%Y-%m-%d %X')
>>> s
'2018-04-16 11:21:01'
>>> dt2 = datetime.datetime.strptime(s, '%Y-%m-%d %X')
>>> dt2
datetime.datetime(2018, 4, 16, 11, 21, 1)

讨论

使用datetimetimedelta能够对日期时间很方便的操做,除了上面介绍的,还好比将一个列表中某个时间段的数据取出来、对数据库中select出来的日期时间进行操做、或者对日期字符串进行从新格式化等等rem

除了datetimetimedelta类外,datetime模块还支持datetime等类,若是只须要表示日期(X年X月X日),能够只使用date类,若是只须要表示时间(X时X分X秒),能够使用time文档

关于strftimestrptime的占位符(%Y %m %d这种)见:https://docs.python.org/3/lib...字符串

关于datetime更详细的文档见:https://docs.python.org/3/lib...

来源

Segment Fault

关注

欢迎关注个人微信公众号:python每日一练

相关文章
相关标签/搜索