一、datetime模块介绍
(一)、datetime模块中包含如下类:
类名 |
功能说明 |
date |
日期对象,常用的属性有year, month, day |
time |
时间对象 |
datetime |
日期时间对象,常用的属性有hour, minute, second, microsecond |
datetime_CAPI |
日期时间对象C语言接口 |
timedelta |
时间间隔,即两个时间点之间的长度 |
tzinfo |
时区信息对象 |
(二)、datetime模块中包含的常量
常量 |
功能说明 |
用法 |
返回值 |
MAXYEAR |
返回能表示的最大年份 |
datetime.MAXYEAR |
9999 |
MINYEAR |
返回能表示的最小年份 |
datetime.MINYEAR |
1 |
二、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__(…) |
小于(x |
x.__lt__(y) |
__ne__(…) |
不等于(x!=y) |
x.__ne__(y) |
以上方法的返回值为True\False
示例如下:
>>> 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 - y |
x.__sub__(y) |
__rsub__(…) |
y - x |
x.__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):
示例如下
>>>