Python datetime模块

一、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'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

·惊鸿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值