设为首页 加入收藏

TOP

python——datetime模块(一)
2019-09-03 02:44:02 】 浏览:57
Tags:python datetime 模块

一、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、 通过yearmonthday三个数据描述符可以进行访问:

 1 >>> import datetime
 2 >>> datetime.date.today()
 3 datetime.date(2019, 8, 21)
 4 >>> a = datetime.date.today()
 5 >>> a
 6 datetime.date(2019, 8, 21)
 7 >>> a.year
 8 2019
 9 >>> a.month
10 8
11 >>> a.day
12 21 

3、当然,你也可以用__getattribute__(...)方法获得上述值:

1 >>> a.__getattribute__('year')
2 2019
3 >>> a.__getattribute__('month')
4 8
5 >>> a.__getattribute__('day')
6 21

 (二)、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 
示例如下:

d1 = datetime.date(2019, 8, 21)
d2 = datetime.date(2019, 8, 20)
print('d1.__eq__(d2)>>>{}\td1.__ge__(d2)>>>{}'.format(d1.__eq__(d2),d1.__ge__(d2)))
输出:
d1.__eq__(d2)>>>False    d1.__ge__(d2)>>>True

 

 

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

使用__sub__(...)__rsub__(...)方法,其实二个方法差不太多,一个是正向操作,一个是反向操作:

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

 

 

 

示例如下:

1 >>> a
2 datetime.date(2019, 8, 22)
3 >>> b
4 datetime.date(2019, 8, 15)
5 >>> a.__sub__(b)
6 datetime.timedelta(days=7)
7 >>> a.__rsub__(b)
8 datetime.timedelta(days=-7)
9 >>>

 

3、ISO标准化日期

如果想要让所使用的日期符合ISO标准,那么使用如下三个方法: 
1).isocalendar(...)*:返回一个包含三个值的元组,三个值依次为:year年份,week number周数,weekday星期数(周一为1…周日为7): 
示例如下

a = datetime.date(2019, 8, 21)
date_iso = a.isocalendar()
print('date_iso-->', date_iso)
print(date_iso[0], date_iso[1], date_iso[2])
输出:
date_iso--> (2019, 34, 3)
2019 34 3

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

示例如下

1 >>> a=datetime.date(2019, 8, 22)
2 >>> a.isoformat()
3 '2019-08-22'
4 >>>

3). isoweekday(...): 返回符合ISO标准的指定日期所在的星期数(周一为1…周日为7) 
示例如下:

1 a=datetime.date(2019,8,22)
2 >>> a.isoformat()
3 '2019-08-22'
4 >>> a.isoweekday()
5 4

4).与isoweekday(...)相似的还有一个weekday(...)方法,只不过是weekday(...)方法返回的周一为 0, 周日为 6 
示例如下:

1 >>> a.weekday()
2 3

 

4、其他方法与属性

1). timetuple(...):该方法为了兼容time.localtime(...)返回一个类型为time.struct_time的数组,但有关时间的部分元素值为0:

1 >>> a=datetime.date(2019, 8, 21)
2 >>> a.timetuple()
3 time.struct_time(tm_year=2019, tm_mon=8, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday
首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇第一天学习如何使用markdown写日.. 下一篇Python Web(四)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目