Pythondatetime模块中datetime类的使用

mac2022-06-30  90

主要记录下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模块
最新回复(0)