主要记录下datetime类的一些用法,在碰到时间相关的运算时有个积累。timedelta对象表示两个不同的date或者time的持续时间,类似于一个时间间隔。class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)类定义,有很多参数,不过内部存储的只有days,seconds和microseconds,从文档的介绍可以看出其他的都是通过这三个单位来换算的(当然这个也不是特别重要,也不一定准确),换算的方法:1毫秒 = 1000微妙一分钟 = 60秒一小时 = 3600秒一星期 = 7天从文档的这个换算方式也是印证了我的猜想。datetime类是date和time的合集: class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)其中这些参数的范围是:MINYEAR <= year <= MAXYEAR 1 <= month <= 12 1 <= day <= number of days in the given month and year 0 <= hour < 24 0 <= minute < 60 0 <= second < 60 0 <= microsecond < 1000000 其中MINYEAR和MAXYEAR是常量,分别为1和9999如果超过了这些参数的范围会报ValueError错误。datetime对象的操作包含以下几种:datetime2 = datetime1 + timedelta datetime2 = datetime1 - timedelta timedelta = datetime1 - datetime2 datetime1 < datetime2下面一一记录:datetime2 = datetime1 + timedelta加3天 >>> now = datetime.now() >>> now datetime.datetime(2017, 6, 25, 20, 53, 40, 36492) >>> day = timedelta(days=3) >>> now + day datetime.datetime(2017, 6, 28, 20, 53, 40, 36492)这样就加上了三天。加1年 >>> days = timedelta(days=365) >>> now + days datetime.datetime(2018, 6, 25, 20, 53, 40, 36492) >>>这里在timedelta对象上指定的参数是days,并没有year参数,如果指定了year或者years参数就会报错: >>> days = timedelta(year=1) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'year' is an invalid keyword argument for this function >>> days = timedelta(years=1) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'years' is an invalid keyword argument for this function >>>这里需要注意的是datetime的不能超过各类对象的参数值得范围。datetime2 = datetime1 - timedelta与相加是一样的。timedelta = datetime1 - datetime2 >>> now = datetime.now() >>> now1 = datetime.now()+ timedelta(days=3) >>> intervaldays = now1-now >>> intervaldays datetime.timedelta(3, 14, 538899) >>> intervaldays.days 3 >>> intervaldays.seconds 14 >>> intervaldays.microseconds 538899再一个就是比较两个datetime对象的datetime1 < datetime2 >>> now1 > now Truedatetime有很多很有用的方法weekday,isoweekday前者是星期一为0周日为6,后者是周一为1周日为7 >>> datetime.weekday(now) 6 >>> datetime.isoweekday(now) 7 >>>当然也可以按照datetime的构造中的参数名来显示相关的数据: >>> now.day 25 >>> now.year 2017 >>> now.minute 0 >>> now.second 43 >>> now.month 6 >>> now.hour 21 >>> combine函数可以将date和time对象合并起来 >>> d = date(2005, 7, 14) >>> t = time(12, 30) >>> datetime.combine(d, t) datetime.datetime(2005, 7, 14, 12, 30)--------------------- 作者:python5915 来源: 原文:https://blog.csdn.net/chuan_day/article/details/73729329 版权声明:本文为博主原创文章,转载请附上博文链接!
转载于:https://www.cnblogs.com/jiumo/p/9997962.html
相关资源:详解python datetime模块