Python datetime模块
一、datetime模块介绍(一)包含以下类类名功能说明date日期对象,常用的属性有year(年),month(月),day(日)time时间对象datetime时间日期对象常用的属性有hour(时),minute(fen),秒(second),microsecond(微秒)datetime_CAPI时间日期对象C语言接口datetimedelta时间间隔,即两个时间点之间的长度t...
一、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'
更多推荐
所有评论(0)