孤荷凌寒自学python第二十七天python的datetime模块及初识datetime.date模块

孤荷凌寒自学python第二十七天python的datetime模块及初识datetime.date模块

(完整学习过程屏幕记录视频地址在文末,手写笔记在文末)

一、datetime模块

datetime模块包含以下子模块:

(一) 表示时刻点 的模块

datetime.date

datetime.time

datetime.datetime

datetime.datetime_CAPI

(二) 表示时间间隔(时间长度)的模块

datetime.delta

(三) 表示时区信息的模块

datetime.tzinfo

二、datetime模块表示时间的起止极限

datetime模块能表达1-9999年的所有时间。

有两个相关常量

datetime.MINYEAR =1

datetime.MAXYEAR=9999

三、初识 datetime.date子模块

datetime.date实例化时的初始形参有三个:年、月、日

执行初始化即可得到一个实例化的datetime.date对象:

测试:

>>> import datetime

>>> dateTemp=datetime.date(2018,10,8)

>>> print(dateTemp)

2018-10-08

四、datetime.date对象的常用属性

最常用的属性有四个:

year  返回日期中的 年

month 返回日期中的 月

day 返回日期中的 日

__getattribute__  获取日期对象中指定的属性

下面继续上面的测试(只有新增加的代码部分)

>>> intY=dateTemp.year

>>> intM=dateTemp.month

>>> intD=dateTemp.day

>>> print(intY,intM,intD)

2018 10 8

>>> intY2=dateTemp.__getattribute__('year')

>>> print(intY2)

2018

五、比较两个  datetime.date对象的大小

使用 datetime.date 对象的以下内部 方法  比较 当前datetime.date对象与另一个datetime.date对象的大小:

测试如下:

import datetime

dateOne=datetime.date(2018,6,30)

dateTwo=datetime.date(2018,7,1)

print(dateOne.__eq__(dateTwo))  #dateOne是否等于dateTwo

print(dateOne.__ge__(dateTwo))  #dateOne是否大于等于dateTwo

print(dateOne.__gt__(dateTwo))  #dateOne是否大于dateTwo

print(dateOne.__le__(dateTwo))  #dateOne是否小于等于dateTwo

print(dateOne.__lt__(dateTwo))  #dateOne是否小于dateTwo

print(dateOne.__ne__(dateTwo))  #dateOne是否不等于dateTwo

以上所有方法都返回 布尔对象 True 或 False

六、两个datetime.date对象的减法操作

1 正向相减(当前日期对象减去后面参数的日期对象)

x.__sub__(y)  表示x-y

2 反向相减 (后面的参数的日期对象减去当前日期对象)

x.__rsub__(y) 表示y-x

执行datetime.date对象的这两个方法后,返回的是一个:

datetime.timedelta

对象。

七、对datetime.date对象的国际化处理(iso标准)

1 isocalendar()

执行此方法 ,将返回一个元组,此元组对象有三个元素,先后顺序排列为:

年、一年的第几周、星期几(1表示星期一)

测试:

>>> import datetime

>>> a=datetime.date(2017,3,22)

>>> tpl=a.isocalendar()

>>> print(tpl)

(2017, 12, 3)

2  isoformat()   __str__()

执行此方法,将返回国际标准的日期字符串:

YYYY-MM-DD

在操作系统日期环境设置为中文的情况下,__str__()方法返回结果与isoformat()方法一样。

测试:

>>> import datetime

>>> d=datetime.date(2018,10,9)

>>> strA=d.isoformat()

>>> strB=d.__str__()

>>> print(strA,strB)

2018-10-09 2018-10-09

3  isoweekday()

执行此方法 将返回 星期几对应的数字 1-7,其中1表示星期一,7表示星期日

继续上面的测试(以下代码只有新增的代码 部分)

>>> intWeekDay=d.isoweekday()

>>> print(intWeekDay)

2

八、datetime.date对象的其它方法

1 weekday()

执行此方法 将返回 星期几对应的数字 0-6 ,其中0表示星期一,6表示星期日

2 timetuple()

执行此方法  将把当前datetime.date对象转换成time模块中的 struct_time(标准时间元组)对象。

但datetime.date对象中没有时间信息,那么,转换后的struct_time(标准时间元组)对象中的所有与时间相关的值都用0来填充。

继续上面的测试(以下代码只有新增的代码 部分):

>>> tplStruct_Time=d.timetuple()

>>> print(tplStruct_Time)

time.struct_time(tm_year=2018, tm_mon=10,tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=282, tm_isdst=-1)

——————————

今天整理的学习笔记完成,最后例行说明下我的自学思路:

根据过去多年我自学各种编程语言的经历,认为只有真正体验式,解决实际问题式的学习才会有真正的效果,即让学习实际发生。在2004年的时候我开始在一个乡村小学自学电脑 并学习vb6编程语言,没有学习同伴,也没有高师在上,甚至电脑都是孤岛(乡村那时还没有网络),有的只是一本旧书,在痛苦的自学摸索中,我找到适应自己零基础的学习方法:首先是每读书的一小节就作相应的手写笔记,第二步就是上机测试每一个笔记内容是否实现,其中会发现书中讲的其实有出入或错误,第三步就是在上机测试之后,将笔记改为电子版,形成最终的修订好的正确无误的学习笔记。

通过反复尝试错误,在那个没有分享与交流的黑暗时期我摸黑学会了VB6,尔后接触了其它语言,也曾听过付费视频课程,结果发现也许自己学历果然太低,就算是零基础的入门课程,其实也难以跟上进度,讲师的教学多数出现对初学者的实际情况并不了解的情况,况且学习者的个体也存在差异呢?当然更可怕的是收费课程的价格往往是自己难以承受的。

于是我的所有编程学习都改为了自学,继续自己的三步学习笔记法的学习之路。

当然自学的最大问题是会走那么多的弯路,没有导师直接输入式的教学来得直接,好在网络给我们带来无限搜索的机会,大家在网络上的学习日志带给我们共享交流的机会,而QQ群等交流平台、网络社区的成立,我们可以一起自学,互相批评交流,也可以获得更有效,更自主的自学成果。

于是我以人生已过半的年龄,决定继续我的编程自学之路,开始学习python,只希望与大家共同交流,一个人的独行是可怕的,只有一群人的共同前进才是有希望的。

诚挚期待您的交流分享批评指点!欢迎联系我加入从零开始的自学联盟。

这个时代互联网成为了一种基础设施的存在,于是本来在孤独学习之路上的我们变得不再孤独,因为网络就是一个新的客厅,我们时刻都可以进行沙龙活动。

非常乐意能与大家一起交流自己自学心得和发现,更希望大家能够对我学习过程中的错误给予指点——是的,这样我就能有许多免费的高师了——这也是分享时代,社区时代带来的好福利,我相信大家会的,是吧!

根据完全共享的精神,开源互助的理念,我的个人自学录制过程是全部按4K高清视频录制的,从手写笔记到验证手写笔记的上机操作过程全程录制,但因为4K高清文件太大均超过5G以上,所以无法上传至网络,如有需要可联系我QQ578652607对传,乐意分享。上传分享到百度网盘的只是压缩后的720P的视频。

我的学习过程录像百度盘地址分享如下:(清晰度:1280x720)

链接:https://pan.baidu.com/s/1sxoKKui9oqis5cPSnPam0w 密码:msqa

喜马拉雅语音笔记:

https://www.ximalaya.com/keji/19103006/141893275

猜你喜欢

转载自www.cnblogs.com/lhghroom/p/10067257.html
今日推荐