标准库time、datetime、calendar的使用

本文详细介绍了Python中的time、datetime和calendar库,包括time库的基本介绍和时间获取、格式化、计时功能,datetime库的概述、解析方法,以及calendar库的常用函数,帮助读者理解如何在Python中处理日期和时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日期和时间总是充斥着我们的世界,不经意间我们总是会发出“咦,现在几点了,今天星期几呀,今天多少号呀~”的疑问,对于这个无处不在的东西,我们强大的Python当然不会遗漏,建立了一些库来处理它。下面,我们就来了解一下这些库的使用方法。

一、 time库的使用

1、 time库基本介绍
  • 是计算机时间的表述
  • 提供系统级精确计时功能,用于程序性能分析
  • 提供获取系统时间并格式化输出功能
2 、time库函数介绍
  • time库包括三类函数
    • 时间获取:time()ctime()gmtime()
    • 时间格式化:strftime()strptime()
    • 程序计时:sleep()perf_counter()
2.1 时间获取
函数(使用方法:time.<函数名>())描述程序说明
time()获取当前时间戳,即计算机内部时间值(为浮点数)>>>time.time()#获取1970年以来的秒数 返回1555250997.6077707
ctime()获取当前时间并以易读方式表示,返回字符串>>> time.ctime()返回’Sun Apr 14 22:17:57 2019’
gmtime()获取当前时间,表示为计算机可以处理的时间格式>>> time.gmtime() 返回time.struct_time(tm_year=2019, tm_mon=4, tm_mday=14, tm_hour=14, tm_min=25, tm_sec=25, tm_wday=6, tm_yday=104, tm_isdst=0)
2.2 时间格式化
  • 将时间以合理的方式展示出来
  • 格式化:时间格式化的函数前缀是str,而str表示的字符串,所以时间的时间的格式化就类似字符串格式化,需要有展示模板
  • 展示模板由特定的格式化控制符组成
格式化控制符说明值范围
%Y年份0~9999
%m月份1~12
%B月份名称January~December
%b月份名称缩写Jan~Dec
%d日期1~31
%A星期Monday~Sunday
%a星期缩写Mon~Sun
%H小时(24小时制)0~23
%h小时(12小时制)1~12
%p上 / 下午AM / PM
%M分钟0~59
%S0~59

上述格式可以与print()的格式化函数一起使用。要了解print()的格式化可以进入下面这个链接:https://blog.youkuaiyun.com/best_of_times/article/details/88675675

函数描述
strftime(tpl, ts)tpl是格式化模板字符串,用来定义输出效果,ts是计算机内部时间类型变量
>>> time.strftime("%Y/%m/%d %p %H:%M:%S",t)
'2019/04/14 PM 15:27:09'
函数描述
strptime(str, tpl)str是字符串形式的时间值,tpl是格式化模板字符串,用来定义输出效果
>>> t = "2019-04-14 23:34:53"
>>> time.strptime(t,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=14, tm_hour=23, tm_min=34, tm_sec=53, tm_wday=6, tm_yday=104, tm_isdst=-1)
2.3 程序计时:

—— 计量起止动作所经历时间的过程

函数描述
perf_counter()以包含小数部分的秒数返回一个性能计数器的值,其被定义为测量较短时间段所能使用的最高可用分辨率时钟,它包括系统范围的在睡眠期间流逝的时间
sleep(s)s定义休眠的时间,单位为秒,可以是浮点数,使用这个函数之后程序将会等待s秒后再进行

二、datetime库的使用

2.1、datetime库概述
  • 提供了一系列由简单到复杂的时间处理方法。datetime库可以从系统中获得时间,并以
    用户选择的格式输出。
  • 以格林威治时间为基础,每天由3600*24秒精准定义。该库包括两个常量:datetime.MINYEAR与datetime.MAXYEAR,分别表示datetime所能表示的最小、最大年份,值分别为1与9999。
  • datetime库以类的方式提供多种日期和时间表达方式:
    • datetime.date:日期表示类,可以表示年、月、日等。
    • datetime.time:时间表示类,可以表示小时、分钟、秒、毫秒
    • datetime.datetime:日期和时间表示的类,功能覆盖date和
      time
    • datetime.timedelta:时间间隔有关的类。
    • datetime.tzinfo:与时区有关的信息表示类

➢由于datetime.datetime类表达形式最为丰富,所以在这里主要介绍这个类的使用。
from datetime import datetime

2.2、datetime解析

datetime类(datetime.datetime类,以下简称为datetime类)的使用方式是首先创建一个datetime对象,然后通过对象的方法和属性显示时间。

2.2.1 创建datetime对象的方法(3个):

datetime.now()
datetime.utcnow()
datetime.datetime()

函数描述
datetime.now()作用:返回一个datetime类型,表示当前的日期和时间,精确到微秒。参数:无
datetime.utcnow()作用:返回一个datetime类型,表示当前日期和时间的UTC表示,精确到微秒。参数:无
datetime(year, month, day, hour=0,minute=0,second=0, microsecond=0)作用:返回一个datetime类型,表示指定的日期和时间,可以精确到微秒。

microsecond: 指定的微秒数,0 <= microsecond <1000000

通过调用datetime()函数来直接创建一个datetime对象,表示2019年4月15日16:23,36秒9微秒:

>>> some_time = datetime(2019,4,15,16,23,36,9)
>>> some_time
datetime.datetime(2019, 4, 15, 16, 23, 36, 9)

现在,程序就有了一个datetime对象,我们可以进一步可以利用对象的属性显示时间,为了区别datetime库名,采用上面程序中的
some_time代替生成的datetime对象。

2.2.2 对象的属性
属性描述
some_time.min固定返回datetime的最小时间对象,返回datetime.datetime(1, 1, 1, 0, 0)
some_time.max固定返回datetime的最大时间对象,datetime(9999,12,31,23,59,59,999999)
some_time.year返回对象some_time包含的年份
some_time.month返回对象some_time包含的月份
some_time.day返回对象some_time包含的日期
some_time.hour返回对象some_time包含的小时
some_time.minute返回对象some_time包含的分钟
some_time.second返回对象some_time包含的秒钟
some_time.microsecond返回对象some_time包含的微秒值
2.2.3 datetime对象常用的时间格式化方法(3个)
方法描述
some_time.isoformat()采用ISO 8601标准显示时间
some_time.isoweekday(根据日期计算星期后返回1-7,对应星期一到星期日
some_time.strftime(format)根据格式化字符串format进行格式显示的方法
  • strftime()方法是时间格式化最有效的方法,几乎可以以任何通用格式输出时间。
>>> some_time.strftime("%Y/%m/%d %H:%M:%S")
'2019/04/15 16:23:36'

三、calendar库

Calendar模块的函数都是日历相关的,有很广泛的方法用来处理年历和月历,例如打印某月的月历:

模块包含了以下内置函数(12个):
函数( <库名>.<函数名>(参数) )描述
calendar.calendar(year,w=2,l=1,c=6)返回一个多行字符串格式的第year年的年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* w+18+2* c。l是每星期行数。
calendar.firstweekday( )返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。
calendar.setfirstweekday(weekday)设置每周的起始日期码。0(星期一)到6(星期日)。
calendar.isleap(year)判断year是否是闰年,是闰年返回 True,否则为 False。
calendar.leapdays(x,y)返回在x,y两年之间的闰年总数。
calendar.month(year,month,w=2,l=1)返回一个多行字符串格式的第year年的第month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
calendar.monthcalendar(year,month)返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
calendar.monthrange(year,month)返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。
calendar.prcal(year,w=2,l=1,c=6)打印第year年的年历。相当于 print calendar.calendar(year,w,l,c)。
calendar.prmonth(year,month,w=2,l=1)打印第year年第month的月历。相当于 print calendar.calendar(year,w,l,c)。
calendar.timegm(tupletime)和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间戳(1970纪元后经过的浮点秒数)。
calendar.weekday(year,month,day)返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。
>>> import calendar
>>> print(calendar.isleap(2000))
True
>>> print(calendar.isleap(1900))
False
>>> calendar.prmonth(2019,5,2,1)
      May 2019
Mo Tu We Th Fr Sa Su
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

部分参考自菜鸟教程:http://www.runoob.com/python/python-date-time.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值