上一篇内容了解了time模块,接下来看下Datetime模块,这里主要想解决的问题是如何计算两个时间的差,并且返回秒,分钟,小时,所以内容主要更偏向于解决问题,如果大家没有看到自己需要的,最后会放上官方文档供大家参考。
首先看一下它具有的类及描述:
类名 描述 datetime.
date
日期对象,属性:year,month,和 day 。 datetime.
time
时间对象,属性:hour,minute,second,microsecond 和 tzinfo。 datetime.
datetime
日期和时间的组合对象,属性:year,month,day,hour,minute,second,microsecond 和 tzinfo。 datetime.
timedelta
两个日期或时间之间的差。 datetime.
tzinfo
表示 UTC 时区的固定偏移,是 tzinfo 基类的实现 datetime.
timezone
将 tzinfo 抽象基类实现为与UTC的固定偏移量的类。 这里需要注意的是datetime默认的两个常量分别是
MINYEAR和MAXYEAR,即最小年与最大年分别是1和9999
datetime.MINYEAR #1 datetime.MAXYEAR #9999
为大家科普一下常用的方法:)
- datetime.date.today():返回当前时间,只会返回年月日。
- datetime.date.fromtimestamp(timestamp):返回时间戳所对应的时间,只会返回年月日。
- datetime.datetime.now():返回当前时间,返回值为年月日,小时,分钟,秒,毫秒。
- datetime.datetime.strptime('2018-11-20 15:51:24.482422',"%Y-%m-%d %H:%M:%S.%f"):按字符串的格式返回datetime.datetime数据。
- datetime.datetime.fromtimestamp(1542696019.5583735):返回时间戳所对应的时间,包含年月日,小时,分钟,秒,微秒。
- datetime.datetime.timestamp(datetime.datetime()):返回时间戳,输入的是datetime.datetime类型数据。
datetime.date.today() #datetime.date(2018, 11, 20) datetime.date.fromtimestamp(1542696019.5583735) #datetime.date(2018, 11, 20) datetime.datetime.now() #datetime.datetime(2018, 11, 20, 16, 4, 41, 186189) datetime.datetime.strptime('2018-11-20 15:51:24.482422',"%Y-%m-%d %H:%M:%S.%f") #datetime.datetime(2018, 11, 20, 15, 51, 24, 482422) datetime.datetime.fromtimestamp(1542696019.5583735) #datetime.datetime(2018, 11, 20, 14, 40, 19, 558373) datetime.datetime.timestamp(datetime.datetime(2018, 11, 20, 14, 40, 19, 558373)) #1542696019.558373
这里提示大家一下,datetime.date.today()和datetime.datetime.now()返回的值是datetime.datetime格式,可以直接用str(datetime.datetime.now())的方法将数据转换为字符串,方便进行存储。例如str(a),返回的结果是个字符串。
接下来进入正题:
首先创建两个时间:
a = datetime.datetime.now() b = datetime.datetime.now() #注意这两个时间是在不同时间创建的,所以值不相同。
将这两个时间相减可得:
c = b-a c #datetime.timedelta(0, 283, 433989) #上面是两个时间相减产生的结果,返回的参数分别为天,秒,微秒 type(c) #datetime.timedelta
依次调用 datetime.timedelta 的属性:
c.days #0 #天数 c.seconds #283 #秒数 c.total_seconds() #283.433989 #秒数加微秒的值
结果就如上所示了,其实关键点就是要先将时间转换成 datetime.datetime 形式,然后就可以直接做运算。
官方文档如下:datetime