芯学长 | 掌握芯资讯,引领芯未来

您当前所在位置:首页 > 资源下载 > 技术文库

python入门基础教程(八):与时间相关的模块

发布时间:2023-08-04来源:芯学长

下载资料
文件概述:

python语言现在比较热门,不管是我们大学生、研究生、还在在职人士,可以通过自学先简单的了解python语言,它入门较简单,今天芯学长给大家分享了python入门基础教程(八):与时间相关的模块,希望对大家有所帮助。

想要【python入门基础教程】可以点击上方蓝色按钮,免费下载。

python入门基础教程

1 time 模块

time 模块提供了很多与时间相关的类和函数,下面我们介绍一些常用的。

1.1 struct_time 类

time 模块的 struct_time 类代表一个时间对象,可以通过索引和属性名访问值。对应关系如下所示:

image

tm_sec 范围为 0 ~ 61,值 60 表示在闰秒的时间戳中有效,并且由于历史原因支持值 61。

localtime() 表示当前时间,返回类型为 struct_time 对象,示例如下所示:

image

输出结果:

t--> time.struct_time(tm_year=2019, tm_mon=12, tm_mday=1, tm_hour=19, tm_min=49, tm_sec=54, tm_wday=6, tm_yday=335, tm_isdst=0)
tm_year--> 2019
tm_year--> 2019

1.2 常用函数

image

image

image

strftime 函数日期格式化符号说明如下所示:

符号说明
%a本地化的缩写星期中每日的名称
%A本地化的星期中每日的完整名称
%b本地化的月缩写名称
%B本地化的月完整名称
%c本地化的适当日期和时间表示
%d十进制数 [01,31] 表示的月中日
%H十进制数 [00,23] 表示的小时(24小时制)
%I十进制数 [01,12] 表示的小时(12小时制)
%j十进制数 [001,366] 表示的年中日
%m十进制数 [01,12] 表示的月
%M十进制数 [00,59] 表示的分钟
%p本地化的 AM 或 PM
%S十进制数 [00,61] 表示的秒
%U十进制数 [00,53] 表示的一年中的周数(星期日作为一周的第一天)
%w十进制数 [0(星期日),6] 表示的周中日
%W十进制数 [00,53] 表示的一年中的周数(星期一作为一周的第一天)
%x本地化的适当日期表示
%X本地化的适当时间表示
%y十进制数 [00,99] 表示的没有世纪的年份
%Y十进制数表示的带世纪的年份
%z时区偏移以格式 +HHMM 或 -HHMM 形式的 UTC/GMT 的正或负时差指示,其中 H 表示十进制小时数字,M 表示小数分钟数字 [-23:59, +23:59]
%Z时区名称
%%字面的 '%' 字符

2、datetime 模块

datatime 模块重新封装了 time 模块,提供了更多接口,变得更加直观和易于调用。

2.1 date 类

date 类表示一个由年、月、日组成的日期,格式为:datetime.date(year, month, day)。

  • year 范围为:[1, 9999]

  • month 范围为:[1, 12]

  • day 范围为 [1, 给定年月对应的天数]。

类方法和属性如下所示:

方法(属性)说明
today()返回当地的当前日期
fromtimestamp(timestamp)根据给定的时间戮,返回本地日期
mindate 所能表示的最小日期
maxdate 所能表示的最大日期

使用示例如下所示:

import datetimeimport time
print(datetime.date.today())print(datetime.date.fromtimestamp(time.time()))print(datetime.date.min)print(datetime.date.max)

实例方法和属性如下所示:

方法(属性)说明
replace(year, month, day)生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性
timetuple()返回日期对应的 struct_time 对象
weekday()返回一个整数代表星期几,星期一为 0,星期天为 6
isoweekday()返回一个整数代表星期几,星期一为 1,星期天为 7
isocalendar()返回格式为 (year,month,day) 的元组
isoformat()返回格式如 YYYY-MM-DD 的字符串
strftime(format)返回自定义格式的字符串
year
month
day

使用示例如下所示:


import datetime
td = datetime.date.today()print(td.replace(year=1945, month=8, day=15))print(td.timetuple())print(td.weekday())print(td.isoweekday())print(td.isocalendar())print(td.isoformat())print(td.strftime('%Y %m %d %H:%M:%S %f'))print(td.year)print(td.month)print(td.day)


2.2 time 类

time 类表示由时、分、秒、微秒组成的时间,格式为:time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)。

  • hour 范围为:[0, 24)

  • minute 范围为:[0, 60)

  • second 范围为:[0, 60)

  • microsecond 范围为:[0, 1000000)

  • fold 范围为:[0, 1]

实例方法和属性如下所示:

方法(属性)说明
isoformat()返回 HH:MM:SS 格式的字符串
replace(hour, minute, second, microsecond, tzinfo, * fold=0)创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性
strftime(format)返回自定义格式的字符串
hour
minute
second
microsecond微秒
tzinfo时区

使用示例如下所示:


import datetime
t = datetime.time(10, 10, 10)print(t.isoformat())print(t.replace(hour=9, minute=9))print(t.strftime('%I:%M:%S %p'))print(t.hour)print(t.minute)print(t.second)print(t.microsecond)print(t.tzinfo)

2.3 datetime 类

datetime 包括了 date 与 time 的所有信息,格式为:datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0),参数范围值参考 date 类与 time 类。

类方法和属性如下所示:

方法(属性)说明
today()返回当地的当前时间
now(tz=None)类似于 today(),可选参数 tz 可指定时区
utcnow()返回当前 UTC 时间
fromtimestamp(timestamp, tz=None)根据时间戳返回对应时间
utcfromtimestamp(timestamp)根据时间戳返回对应 UTC 时间
combine(date, time)根据 date 和 time 返回对应时间
mindatetime 所能表示的最小日期
maxdatetime 所能表示的最大日期

使用示例如下所示:

image

实例方法和属性如下所示:

方法(属性)说明
date()返回具有同样 year,month,day 值的 date 对象
time()返回具有同样 hour, minute, second, microsecond 和 fold 值的 time 对象
replace(year, month, day=self.day, hour, minute, second, microsecond, tzinfo, * fold=0)生成一个新的日期对象,用参数指定的年,月,日,时,分,秒...代替原有对象中的属性
weekday()返回一个整数代表星期几,星期一为 0,星期天为 6
isoweekday()返回一个整数代表星期几,星期一为 1,星期天为 7
isocalendar()返回格式为 (year,month,day) 的元组
isoformat()返回一个以 ISO 8601 格式表示日期和时间的字符串 YYYY-MM-DDTHH:MM:SS.ffffff
strftime(format)返回自定义格式的字符串
year
month
day
hour
minute
second
microsecond微秒
tzinfo时区

使用示例如下所示:

image

3 calendar 模块

calendar 模块提供了很多可以处理日历的函数。

3.1 常用函数

方法说明
setfirstweekday(weekday)设置每一周的开始(0 表示星期一,6 表示星期天)
firstweekday()返回当前设置的每星期的第一天的数值
isleap(year)如果 year 是闰年则返回 True ,否则返回 False
leapdays(y1, y2)返回 y1 至 y2 (包含 y1 和 y2 )之间的闰年的数量
weekday(year, month, day)返回指定日期的星期值
monthrange(year, month)返回指定年份的指定月份第一天是星期几和这个月的天数
month(theyear, themonth, w=0, l=0)返回月份日历
prcal(year, w=0, l=0, c=6, m=3)返回年份日历

使用示例如下所示:

image

3.2 Calendar 类

Calendar 对象提供了一些日历数据格式化的方法,实例方法如下所示:

方法说明
iterweekdays()返回一个迭代器,迭代器的内容为一星期的数字
itermonthdates(year, month)返回一个迭代器,迭代器的内容为年 、月的日期

使用示例如下所示:

image

3.3 TextCalendar 类

TextCalendar 为 Calendar子类,用来生成纯文本日历。实例方法如下所示:

方法说明
formatmonth(theyear, themonth, w=0, l=0)返回一个多行字符串来表示指定年、月的日历
formatyear(theyear, w=2, l=1, c=6, m=3)返回一个 m 列日历,可选参数 w, l, 和 c 分别表示日期列数, 周的行数, 和月之间的间隔

使用示例如下所示



from calendar import TextCalendar
tc = TextCalendar()print(tc.formatmonth(2019, 12))print(tc.formatyear(2019))


3.4 HTMLCalendar类

HTMLCalendar 类可以生成 HTML 日历。实例方法如下所示:

方法说明
formatmonth(theyear, themonth, withyear=True)返回一个 HTML 表格作为指定年、月的日历
formatyear(theyear, width=3)返回一个 HTML 表格作为指定年份的日历
formatyearpage(theyear, width=3, css='calendar.css', encoding=None)返回一个完整的 HTML 页面作为指定年份的日历

使用示例如下所示:


from calendar import HTMLCalendar
hc = HTMLCalendar()print(hc.formatmonth(2019, 12))print(hc.formatyear(2019))print(hc.formatyearpage(2019))


【免责声明】:本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。

文章评价

-   全部 0 条 我要点评