一、datetime模块介绍

(一)包含以下类

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

(二)包含的常量

               

常量 功能说明 用法 返回值
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)

        以上的返回值为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 - 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):
示例如下:

>>> 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联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐