文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python中的time模块和calendar模块怎么用

2023-06-25 12:18

关注

这篇文章将为大家详细讲解有关Python中的time模块和calendar模块怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Python中对时间和日期的处理方式有很多,其中转换日期是最常见的一个功能。Python中的时间间隔是以秒为单位的浮点小数。

1、时间戳

Python中基本都是以时间戳来保存当前时间的。时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIXWindows只支持到2038年。

时间戳是指格林威治时间1970年01月01日00时00分00秒起至当下的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。

Python中使用time模块的time函数来获取当前的时间戳

示例代码:

import timetime_stamp = time.time()print("当前的时间戳为:", time_stamp)  # 当前的时间戳为: 1590585400.6808906

2、时间元组

Python中的很多函数都是用一个元组装起来9组数字来处理时间。

序号属性
0tm_year2008
1tm_mon1 到 12
2tm_mday1 到 31
3tm_hour0 到 23
4tm_min0 到 59
5tm_sec0 到 61 (60或61 是闰秒)
6tm_wday0到6 (0是周一)
7tm_yday一年中的第几天,1 到 366
8tm_isdst是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1

参与菜鸟教程

3、获取当前时间

从返回的时间戳转变为时间元组可以使用time模块的localtime()函数; time.gmtime([secs])也返回一个时间元组

示例代码:

import timetime_stamp = time.time()  # 获取当前时间戳localtime = time.localtime(time_stamp)print(localtime)# time.struct_time(tm_year=2020, tm_mon=5, tm_mday=27, tm_hour=21, tm_min=36, tm_sec=42, tm_wday=2, tm_yday=148, tm_isdst=0)

4、格式化时间

可以使用time模块的asctime函数将时间元组格式化为最简单的可读模式,不给参数的话表示当前时间

time.ctime([secs])此参数接受时间戳为单位,返回日期的可读模式,不给参数相当于time.asctime()

示例代码:

import timetime_stamp = time.time()localtime = time.asctime(time.localtime(time_stamp))print("当前时间为:", localtime)  # 当前时间为: Wed May 27 21:47:48 2020

5、格式化日期

Python中的日期格式化符号:

符号描述
%y两位数的表示年份(00-99)
%Y四位数的表示年份(0000-9999)
%m月份(01-12)
%d月内中的某一天(1-31)
%H24小时制小时数(0-23)
%I12小时制小时数(01-12)
%M分钟数(00=59)
%S秒(00-59)
%a本地简化星期名称
%A本地完整星期名称
%b本地简化的月份名称
%B本地完整的月份名称
%c本地相应的日期表示和时间表示
%j年内的一天(001-366)
%p本地A.M.或P.M.的等价符
%U一年中的星期数(00-53)星期天为星期的开始
%w星期(0-6),星期天为星期的开始
%W一年中的星期数(00-53)星期一为星期的开始
%x本地相应的日期表示
%X本地相应的时间表示
%Z当前时区的名称
%%%号本身

time mktime(结构化的时间或者完整的9位元组元素) 函数执行与gmtime() , localtime()相反的操作,它接收struct_time对象作为参数,返回用秒数来表示时间的浮点数。如果输入的值不是一个合法的时间,将触发 OverflowError 或 ValueError

示例代码:

import timetime_stamp = time.time()print(time_stamp)  # 1590590683.0062041# 4位数的年份-月份-天数 24小时制:分钟:秒 周几 今年的第几天localtime = time.strftime("%Y-%m-%d %H:%M:%S %A %j", time.localtime(time_stamp))print(localtime)  # 2020-05-27 22:44:43 Wednesday 148# 转变为时间元组localtime_tuple = time.strptime(localtime, "%Y-%m-%d %H:%M:%S %A %j")print(localtime_tuple)  # time.struct_time(tm_year=2020, tm_mon=5, tm_mday=27, tm_hour=22, tm_min=44, tm_sec=43, tm_wday=2, tm_yday=148, tm_isdst=-1)# 将时间元组转换为秒(时间戳)time_stamp = time.mktime(localtime_tuple)print(time_stamp)  # 1590590683.0  # 与一开始获取的基本相等

6、获取CPU时间

time.perf_counter() 返回计时器的精准时间(系统的运行时间),包含整个系统的睡眠时间。由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的。

time.process_time()返回当前进程执行 CPU 的时间总和,不包含睡眠时间。由于返回值的基准点是未定义的,所以,只有连续调用的结果之间的差才是有效的。

time.sleep() 函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。

示例代码:

import time# 获取系统运行该函数的时间print(time.perf_counter())  # 0.0208446time.sleep(2)# 读取系统运行该函数的时间,print(time.perf_counter())  # 2.0208952  # 两者的差距微乎其微# 获取当前进程执行 CPU 的时间总和print(time.process_time())  # 0.015625  # 不包含睡眠时间

7、日历模块

Calendar日历模块,此模块中的函数都是日历相关的,例如打印某月的字符月历

函数描述
calendar.calendar(year,w=2,l=1,c=6)返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
calendar.month(year,month,w=2,l=1)返回一个多行字符串格式的year年month月日历,两行,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
calendar.monthrange(year,month)返回两个整数。第一个是该月的星期几,第二个是该月有几天。星期几是从0(星期一)到 6(星期日)。
calendar.leapdays(y1,y2)返回在Y1,Y2两年之间的闰年总数。
calendar.isleap(year)判断是否为闰年,是闰年返回 True,否则为 false。

示例代码:

import calendar# 打印今年的年历print(calendar.calendar(2020))# 打印本月的月历print(calendar.month(2020, 5))# monthrange方法print(calendar.monthrange(2020, 5))  # (4, 31)  # 5月份的第一天是周五一共31天,因为周一是0所以4是周五# 计算1000年到2000年的闰年总数print(calendar.leapdays(1000, 2000))  # 242# 判断今年是否为闰年print(calendar.isleap(2020))  # True

time.strftime(fmt[,tupletime])接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。

time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')根据fmt的格式把一个时间字符串解析为时间元组。

关于“Python中的time模块和calendar模块怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯