Python编程手册系列 - 日历、日期、时间相关内建模块详解
Python - 日历calendar、日期datetime、时间time模块详解
博主精心制作了该系列彩色高亮的动态链接模块手册,预期该手册比阅读纸质书籍有更友好、更便捷、更让人舒适的使用体验。希望大家喜欢。
>点击此跳转到目录
1.日历模块calendar
>回目录
1.1 Calendar类
class calendar.Calendar(firstweekday=0)
创建一个 Calendar 对象。
- firstweekday 是一个整数,用于指定一周的第一天。
- 0 是星期一(默认值),6 是星期天。
iterweekdays()
返回一个迭代器:
- 迭代器的内容为一星期的数字。
- 迭代器的第一个值与 firstweekday 属性的值一至。
itermonthdates(year, month)
返回一个迭代器:
- 迭代器的内容为 year 年 month 月(1-12)的日期。
- 这个迭代器返回当月的所有日期 ( datetime.date 对象),日期包含了本月头尾用于组成完整一周的日期。
itermonthdays(year, month)
返回一个迭代器:
- 迭代器的内容与 itermonthdates() 类似,为 year 年 month 月的日期,但不受 datetime.date 范围限制。
- 返回的日期为当月每一天的日期对应的天数。对于不在当月的日期,显示为 0。
itermonthdays2(year, month)
返回一个迭代器:
- 迭代器的内容与 itermonthdates() 类似为 year 年 month 月的日期,但不受 datetime.date 范围的限制。
- 迭代器中的元素为一个由日期和代表星期几的数字组成的的元组。
itermonthdays3(year, month)
返回一个迭代器:
- 迭代器的内容与 itermonthdates() 类似为 year 年 month 月的日期,但不受 datetime.date 范围的限制。
- 迭代器的元素为一个由年,月,日组成的元组。
itermonthdays4(year, month)
返回一个迭代器:
- 迭代器的内容与 itermonthdates() 类似为 year 年 month 月的日期,但不受 datetime.date 范围的限制。
- 迭代器的元素为一个由年,月,日和代表星期几的数字组成的元组。
monthdatescalendar(year, month)
返回一个表示指定年月的周列表。
- 周列表由七个 datetime.date 对象组成。
monthdays2calendar(year, month)
返回一个表示指定年月的周列表。
- 周列表由七个代表日期的数字和代表周几的数字组成的二元元组。
monthdayscalendar(year, month)
返回一个表示指定年月的周列表。
- 周列表由七个代表日期的数字组成。
yeardatescalendar(year, width=3)
返回可以用来格式化的指定年月的数据。
- 返回的值是一个列表,列表是月份组成的行。
- 每一行包含了最多 width 个月(默认为3)。
- 每个月包含了4到6周,每周包含1–7天。
- 每一天使用 datetime.date 对象。
yeardays2calendar(year, width=3)
返回可以用来模式化的指定年月的数据(与 yeardatescalendar() 类似)。
- 周列表的元素是由表示日期的数字和表示星期几的数字组成的元组。
- 不在这个月的日子为0。
yeardayscalendar(year, width=3)
返回可以用来模式化的指定年月的数据(与 yeardatescalendar() 类似)。
- 周列表的元素是表示日期的数字。
- 不在这个月的日子为0。
1.2 TextCalendar类
class calendar.TextCalendar(firstweekday=0)
用于生成纯文本日历。
TextCalendar 实例有以下方法:
formatmonth(theyear, themonth, w=0, l=0)
返回一个多行字符串来表示指定年月的日历。
- w 为日期的宽度,但始终保持日期居中。
- l 指定了每星期占用的行数。
- 以上这些还依赖于构造器或者 setfirstweekday() 方法指定的周的第一天是哪一天。
prmonth(theyear, themonth, w=0, l=0)
与 formatmonth() 方法一样,返回一个月的日历。
formatyear(theyear, w=2, l=1, c=6, m=3)
返回一个多行字符串,这个字符串为一个 m 列日历。
- 可选参数 w, l, 和 c 分别表示日期列数, 周的行数, 和月之间的间隔。
- 同样,以上这些还依赖于构造器或者 setfirstweekday() 指定哪一天为一周的第一天。
- 日历的第一年由平台依赖于使用的平台。
pryear(theyear, w=2, l=1, c=6, m=3)
与 formatyear() 方法一样,返回一整年的日历。
1.3 HTMLCalendar类
class calendar.HTMLCalendar(firstweekday=0)
可以使用这个类生成 HTML 日历。
HTMLCalendar 实例有以下方法:
formatmonth(theyear, themonth, withyear=True)
返回一个 HTML 表格作为指定年月的日历。
- withyear 为真,则年份将会包含在表头,否则只显示月份。
formatyear(theyear, width=3)
返回一个 HTML 表格作为指定年份的日历。
- width (默认为3) 用于规定每一行显示月份的数量。
formatyearpage(theyear, width=3, css=‘calendar.css’, encoding=None)
返回一个完整的 HTML 页面作为指定年份的日历。
- width*(默认为3) 用于规定每一行显示的月份数量。
- *css 为层叠样式表的名字。如果不使用任何层叠样式表,可以使用 None 。 encoding 为输出页面的编码 (默认为系统的默认编码)。
HTMLCalendar 有以下属性,你可以重载它们来自定义应用日历的样式。
cssclasses
一个对应星期一到星期天的 CSS class 列表。
- 默认列表为cssclasses = [“mon”, “tue”, “wed”, “thu”, “fri”, “sat”, “sun”]
- 可以向每天加入其它样式cssclasses = [“mon text-bold”, “tue”, “wed”, “thu”, “fri”, “sat”, “sun red”]
- 需要注意的是,列表的长度必须为7。
cssclass_noday
工作日的 CSS 类在上个月或下个月发生。
- 3.7 新版功能.
cssclasses_weekday_head
用于标题行中的工作日名称的 CSS 类 列表。默认值与 cssclasses 相同。
- 3.7 新版功能.
cssclass_month_head
月份的头 CSS 类(由 formatmonthname() 使用)。默认值为 “month” 。
- 3.7 新版功能.
cssclass_month
某个月的月历的 CSS 类(由 formatmonth() 使用)。默认值为 “month” 。
- 3.7 新版功能.
cssclass_year
某年的年历的 CSS 类(由 formatyear() 使用)。默认值为 “year” 。
- 3.7 新版功能.
cssclass_year_head
年历的表头 CSS 类(由 formatyear() 使用)。默认值为 “year” 。
- 3.7 新版功能.
- 需要注意的是,尽管上面命名的样式类都是单独出现的(如: cssclass_month cssclass_noday), 但我们可以使用空格将样式类列表中的多个元素分隔开,例如:
"text-bold text-red"
下面是一个如何自定义 HTMLCalendar 的示例
class CustomHTMLCal(calendar.HTMLCalendar):cssclasses = [style + " text-nowrap" for style incalendar.HTMLCalendar.cssclasses]cssclass_month_head = "text-center month-head"cssclass_month = "text-center month"cssclass_year = "text-italic lead"
1.4 LocaleTextCalendar类
class calendar.LocaleTextCalendar(firstweekday=0, locale=None)
- 这个子类 TextCalendar 可以在构造函数中传递一个语言环境名称,并且返回月份和星期几的名称在特定语言环境中。
- 如果此语言环境包含编码,则包含月份和工作日名称的所有字符串将作为 unicode 返回。
1.5 LocaleHTMLCalendar类
class calendar.LocaleHTMLCalendar(firstweekday=0, locale=None)
- HTMLCalendar的这个子类可以在构造函数中被传递一个区域名称,并将返回指定区域中的月份和工作日名称。
- 如果此区域设置包含编码,则包含月份和工作日名称的所有字符串都将作为unicode返回。
- 这两个类的 formatweekday() 和 formatmonthname() 方法临时更改dang当前区域至给定 locale 。由于当前的区域设置是进程范围的设置,因此它们不是线程安全的。
1.6 calendar模块中的其它方法和属性
calendar 模块中的简单的文本日历方法:
calendar.setfirstweekday(weekday)
设置每一周的开始(0 表示星期一,6 表示星期天)。
- calendar还提供了
MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
,SATURDAY
和SUNDAY
几个常量方便使用。- 例如,设置每周的第一天为星期天:
import calendar calendar.setfirstweekday(calendar.SUNDAY)
calendar.firstweekday()
返回当前设置的每星期的第一天的数值。
calendar.isleap(year)
如果 year 是闰年则返回 True ,否则返回 False。
calendar.leapdays(y1, y2)
返回在范围 y1 至 y2 (包含 y1 和 y2 )之间的闰年的年数,其中 y1 和 y2 是年份。
- 此函数适用于跨越一个世纪变化的范围。
calendar.weekday(year, month, day)
返回某年( 1970 – …),某月( 1 – 12 ),某日( 1 – 31 )是星期几( 0 是星期一)。
calendar.weekheader(n)
返回一个包含星期几的缩写名的头。
- n 指定星期几缩写的字符宽度。
calendar.monthrange(year, month)
返回指定 年份 的指定 月份 的第一天是星期几和这个月的天数。
calendar.monthcalendar(year, month)
返回表示一个月的日历的矩阵。
- 每一行代表一周;此月份外的日子由零表示。
- 每周从周一开始,除非使用 setfirstweekday() 改变设置。
calendar.prmonth(theyear, themonth, w=0, l=0)
打印由 month() 返回的一个月的日历。
calendar.month(theyear, themonth, w=0, l=0)
使用 TextCalendar 类的 formatmonth() 以多行字符串形式返回月份日历。
calendar.prcal(year, w=0, l=0, c=6, m=3)
打印由 calendar() 返回的整年的日历。
calendar.calendar(year, w=2, l=1, c=6, m=3)
使用 TextCalendar 类的 formatyear() 返回整年的3列的日历以多行字符串的形式。
calendar.timegm(tuple)
一个不相关但很好用的函数,它接受一个时间元组例如 time 模块中的 gmtime() 函数的返回并返回相应的 Unix 时间戳值,假定 1970 年开始计数, POSIX 编码。
- 实际上, time.gmtime() 和 timegm() 是彼此相反的。
calendar 模块包含以下数据属性:
calendar.day_name
在当前语言环境下表示星期几的数组。
calendar.day_abbr
在当前语言环境下表示星期几缩写的数组。
calendar.month_name
在当前语言环境下表示一年中月份的数组。
- 这遵循一月的月号为 1 的通常惯例,所以它的长度为 13 且 month_name[0] 是空字符串。
calendar.month_abbr
在当前语言环境下表示月份简写的数组。
- 这遵循一月的月号为 1 的通常惯例,所以它的长度为 13 且 month_abbr[0] 是空字符串。
2.日期模块datetime
>回目录
- 待更新
3.时间模块time
>回目录
- 待更新
附:
- 内 容 索 引 - (点击超链接定向到相应位置)
>点击返回顶部
1 日历模块calendar
1.1 Calendar类
项目 | 类型 | 说明 |
---|---|---|
iterweekdays() | 方法 | 返回迭代器,内容为一周的数字 |
itermonthdates(year, month) | 方法 | 返回迭代器,内容为 year 年 month 月(1-12)的日期 |
itermonthdays(year, month) | 方法 | 与itermonthdays()类似 |
itermonthdays2(year, month) | 方法 | 与itermonthdays()类似 |
itermonthdays3(year, month) | 方法 | 与itermonthdays()类似 |
itermonthdays4(year, month) | 方法 | 与itermonthdays()类似 |
monthdatescalendar(year, month) | 方法 | 返回一个表示指定年月的周列表 |
monthdays2calendar(year, month) | 方法 | 返回一个表示指定年月的周列表 |
yeardayscalendar(year, width=3) | 方法 | 与 yeardatescalendar() 类似 |
1.2 TextCalendar类
项目 | 类型 | 说明 |
---|---|---|
formatmonth(theyear, themonth, w=0, l=0) | 方法 | 返回指定年月的日历 |
prmonth(theyear, themonth, w=0, l=0) | 方法 | 返回一个月的日历 |
formatyear(theyear, w=2, l=1, c=6, m=3) | 方法 | 返回一个多行字符串,这个字符串为一个 m 列日历 |
pryear(theyear, w=2, l=1, c=6, m=3) | 方法 | 返回一整年的日历 |
1.3 HTMLCalendar类
项目 | 类型 | 说明 |
---|---|---|
formatmonth(theyear, themonth, withyear=True) | 方法 | 返回一个多行字符串来表示指定年月的日历 |
formatyear(theyear, width=3) | 方法 | 返回一个多行字符串,这个字符串为一个 m 列日历 |
formatyearpage(theyear, width=3, css=‘calendar.css’, encoding=None) | 方法 | 返回一个完整的 HTML 页面作为指定年份的日历 |
cssclasses | 属性 | 一个对应星期一到星期天的 CSS class 列表 |
cssclass_noday | 属性 | 工作日的 CSS 类在上个月或下个月发生 |
cssclasses_weekday_head | 属性 | 用于标题行中的工作日名称的 CSS 类 列表 |
cssclass_month_head | 属性 | 月份的头 CSS 类 |
cssclass_month | 属性 | 某个月的月历的 CSS 类 |
cssclass_year | 属性 | 某年的年历的 CSS 类 |
cssclass_year_head | 属性 | 年历的表头 CSS 类 |
1.4 LocaleTextCalendar类
1.5 LocaleHTMLCalendar类
1.6 calendar模块函数和属性
项目 | 类型 | 说明 |
---|---|---|
calendar.setfirstweekday(weekday) | 函数 | 设置每一周的开始。 |
calendar.firstweekday() | 函数 | 返回当前设置的每星期的第一天的数值。 |
calendar.isleap(year) | 函数 | 判断是否是闰年。 |
calendar.leapdays(y1, y2) | 函数 | 返回某两年间闰年的年数。 |
calendar.weekday(year, month, day) | 函数 | 返回某个日期是星期几。 |
calendar.weekheader(n) | 函数 | 返回一个包含星期几的缩写名的头。 |
calendar.monthrange(year, month) | 函数 | 返回指定月份的第一天是星期几与该月的天数。 |
calendar.monthcalendar(year, month) | 函数 | 返回表示一个月的日历的矩阵。 |
calendar.prmonth(theyear, themonth, w=0, l=0) | 函数 | 打印由 month() 返回的一个月的日历。 |
calendar.month(theyear, themonth, w=0, l=0) | 函数 | 以多行字符串形式返回月份日历。 |
calendar.prcal(year, w=0, l=0, c=6, m=3) | 函数 | 打印由 calendar() 返回的整年的日历。 |
calendar.calendar(year, w=2, l=1, c=6, m=3) | 函数 | 返回整年的3列的日历以多行字符串的形式 |
calendar.timegm(tuple) | 函数 | 接受一个时间元组例如 time 模块中的 gmtime() 函数的返回并返回相应的 Unix 时间戳值 |
2 日期模块datetime
3 时间模块time
Python编程手册系列 - 日历、日期、时间相关内建模块详解相关推荐
- Python基本语法_集合set/frozenset_内建方法详解
目录 目录 前言 软件环境 可变集合Set set函数创建集合 创建空集合 集合元素的唯一性 集合推导式 set类型对象的内置方法 add增加一个元素 remove删除一个元素 pop随机删除并返回一 ...
- joi模块验证日期格式_python datetime模块详解
一.datetime模块介绍 通过print(dir(datetime)),我们可以看到模块内属性和类: ['MAXYEAR', 'MINYEAR', '__builtins__', '__cache ...
- python 内建比较函数详解
http://blog.sina.com.cn/s/blog_5357c0af01011392.html 我们经常需要比较两个对象,使用自定义的函数是个方法,但不直观 故而我们常常使用比较运算符来直接 ...
- python协程系列(三)——yield from原理详解
声明:本文将详细讲解python协程的实现机理,为了彻底的弄明白它到底是怎么一回事,鉴于篇幅较长,将彻底从最简单的yield说起从最简单的生成器开始说起,因为很多看到这样一句话的时候很懵,即" ...
- Python游戏工具包---Pygame最常用的15个模块详解(附pdf版本)
↑ 点击上方 "一行数据" 关注 + 星标 ~ 每周送书,绝不错过 本文不查错,三连送书 最近很多读者想学习使用python来制作游戏,其中最经典的工具包就是Pygame ,如果单 ...
- python标准库time_python标准库介绍——12 time 模块详解
==time 模块== ``time`` 模块提供了一些处理日期和一天内时间的函数. 它是建立在 C 运行时库的简单封装. 给定的日期和时间可以被表示为浮点型(从参考时间, 通常是 1970.1.1 ...
- python中shutil是什么意思_python之shutil模块详解
-- --High-level file operations 高级的文件操作模块. os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如说:绝对路径,父目 ...
- Python编程入门系列课程
原文:https://mc.dfrobot.com.cn/thread-309195-1-1.html Python编程入门系列课程--教程目录: Python编程入门系列课程--01 智能绘星 Py ...
- Python学习笔记:常用内建模块6 (urllib)
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
最新文章
- JAVA Fork Join Demo 1
- 服务器write后客户端响应,客户端解析服务器响应的multipart/form-data数据
- 电脑无法识别u盘怎么办_电脑无法识别U盘?5步操作让办公族轻松搞定!
- ajax环境配置tomcat,jcreator+tomcat环境配置
- 你想知道的容器混合云问题,答案都在这里!
- Java设计模式--解释器模式
- python selenium click 动态加载_python selenium:不要等到click()命令之后加载页面
- 计算机管理如何格式化u盘,u盘无法格式化?0字节?教你5种方法格式化u盘,超简单!...
- protocal buffer repeate 关键字
- 汉印科技大会:凝聚匠心 成就卓越民族打印机品牌
- [培训-无线通信基础-8]:分集技术(微分集、宏分集、信号合并、分集增益)
- allure如何定制Pytest自动化测试报告样式
- 海思hi3516dv300 配置uart3
- Java 面向对象(一)
- 浣熊优化算法(COA)(含MATLAB代码)
- MATLAB初学教程(一)
- 【前端面试必读】w3c标准是什么?
- python大漠插件多开_绝地助手_python挪用大漠插件教程04鼠键事宜及基本项目头脑...
- python实现视频ai换脸_超简单使用Python换脸实例
- 74hc和74ls的区别