一、datetime模块介绍

(一)包含以下类

类名        功能说明
date日期对象,常用的属性有year(年),month(月),day(日)
time时间对象
datetime        时间日期对象 常用的属性有hour(时),minute(fen),秒(second),microsecond(微秒)
datetime_CAPI时间日期对象C语言接口
datetimedelta时间间隔,即两个时间点之间的长度
tzinfo时区信息对象

(二)包含的常量

               

常量功能说明用法返回值
MAXYEAR返回能表示的最大年份datetime.MAXYEAR9999
MINYEAR返回能表示的最小年份datetime.MINYEAR1

二、date类

        (一)、date对象构成

                1、date对象是由 year,month,day 三部分构成:

                        date(year,month,day)

                2、通过year,month,day三个数据描述符可以进行返回

>>> a = datetime.date.today()   #今天的日期   年月日
>>> a
datetime.date(2017, 3, 22)
>>> a.year
2017
>>> a.month
3
>>> a.day
22 

                3、当然你也可以通过 _ _getattribute_ _ (两边各两个下划线)来获取

>>> a.__getattribute__('year')
2017
>>> a.__getattribute__('month')
3
>>> a.__getattribute__('day')
22

(二)date对象中包含的对象和属性

        1、用于比较日期大小的方法

方法名方法说明用法
__eq__(…)等于(x==y)x.__eq__(y)
__ge__(…)大于等于(x>=y)x.__ge__(y)
__gt__(…)大于(x>y)x.__gt__(y)
__le__(…)小于等于(x<=y)x.__le__(y)
__lt__(…)小于(xx.__lt__(y)
__ne__(…)不等于(x!=y)x.__ne__(y)

        以上的返回值为Boolean

           例如:
 

>>> a=datetime.date(2017,3,1)
>>> b=datetime.date(2017,3,15)
>>> a.__eq__(b)
False
>>> a.__ge__(b)
False
>>> a.__gt__(b)
False
>>> a.__le__(b)
True
>>> a.__lt__(b)
True
>>> a.__ne__(b)
True

2、获得第二个日期相差多少天

        使用_ _sub_ _和  _ _ rsub_ _ 两个方法差不多  第一个是正向操作  第二个是反向操作  

方法名方法说明用法
__sub__(…)x - yx.__sub__(y)
__rsub__(…)y - xx.__rsub__(y)

示例:

>>> a
datetime.date(2017, 3, 22)
>>> b
datetime.date(2017, 3, 15)
>>> a.__sub__(b)
datetime.timedelta(7)
>>> a.__rsub__(b)
datetime.timedelta(-7)

计算结果的返回值类型为datetime.timedelta, 如果获得整数类型的结果则按下面的方法操作:

>>> a.__sub__(b).days
7
>>> a.__rsub__(b).days
-7

3、ISO标准化日期

如果想让所使用的日期符合ISO标准,那么使用如下三个方法:

1)isocalendar:

返回一个包含三个值的元组,三个值依次为:year年份,week number周数,weekday星期数

(周一为1…周日为7):
示例如下:

>>> a = datetime.date(2017,3,22)
>>> a.isocalendar()
(2017, 12, 3)
>>> a.isocalendar()[0]
2017
>>> a.isocalendar()[1]
12
>>> a.isocalendar()[2]
3


2). 
isoformat(...)
: 返回符合ISO 8601标准 (
YYYY-MM-DD
) 的日期字符串; 
2). 
isoformat()
: 返回符合ISO 8601标准 (YYYY-MM-DD) 的日期字符串; 

示例如下:

>>> a = datetime.date(2017,3,22)
>>> a.isoformat()
'2017-03-22'

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐