标准库time、datetime、calendar、random的使用
1. time库的使用
1.1 time库概述
- time库是python中处理时间的标准库
1.2 time库介绍
- time库调用
import time
- time库函数分为三类:
time库类别 | 函数 |
---|---|
获取时间 | time.time() ;time.ctime();time.gmtime |
时间格式化 | time.strftime();time.strp.time() |
时间计时 | time.sleep();time.perf_counter() |
1.2.1 获取时间
时间戳:格林威治时间1970年01月01日00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
- time.time()
获取当前时间戳,即计算机内部时间值,返回浮点数 - time.ctime()
获取当前时间并以易读方式表示,返回字符串 - time.gmtime()
获取当前时间,表示为计算机可处理的时间格式 即为struct_time格式
1.2.2 时间格式化
strfime()方法的格式化控制符:
格式化字符串 | 日期/时间 | 值范围和实例 |
---|---|---|
%Y | 年份 | 0001~9999,例如 1999 |
%m | 月份 | 1~12,例如 3 |
%B | 月名 | January~December,例如 April |
%b | 月名缩写 | Jan~Dec,例如 Apr |
%d | 日期 | 01~31,例如 25 |
%A | 星期 | Monday~Sunday,例如 Wednesday |
%a | 星期缩写 | Mon~Sun,例如 Wed |
%H | 小时(24h) | 00~23,例如 08 |
%M | 分钟 | 00~59,例如 10 |
%S | 秒 | 00~59,例如 26 |
%x | 日期 | 月/日/年,例如 21/03/1999 |
%X | 时间 | 时:分:秒,例如 19:09:31 |
- time.strftime(tpl,ts)
接收一个格式字符串,输出日期时间用字符串表示
tpl是格式化模板字符串,用来定义输出效果
ts是计算机内部时间类型变量
- time.strptime(str,tpl)
接收一个时间日期字符串,输出日期时间用格式字符串表示
str是字符串形式的时间值
1.2.3 时间计时
产生时间
- time.sleep(s)
s拟休眠的时间,单位是秒,可以是浮点数time.sleep(5)
#等待5秒执行下一个语句
计算时间
- time.perf_counter()
返回一个CPU级别的精确时间记数值,单位为秒
2. datetime库的使用
2.1 datetime库概述
- datetime提供了一系列有简单到复杂的时间处理方法,datetime库可以从系统中获得时间,并以用户选择的格式输出
- datetime库以格林威治时间为基础,每天有3600*24秒精准定义
- datetime库有datetime.MINYEAR(最小年份)和datetime.MAXYEAR(最大年份)两个常量
2.2 datetime库介绍
- datetime库调用
import datetime
- datetime库以类的方式提供多种日期和时间表达方式
类 | 概述 |
---|---|
datetime.date | 日期表示类,可以表示年、月、日等 |
datetime.time | 时间表示类,可以表示小时、分钟、秒、毫秒等 |
datetime.datetime | 日期和时间表示的类,功能覆盖date和time类 |
datetimetimedelta | 与时间间隔有关的类 |
datetime.tzinfo | 与时区有关的信息表示类 |
2.2.1 datetime类解析
1)创建datetime对象
2)datetime类的常用属性(9个)
3)datetime类常用的时间格式化方法(3个)
ps:datetime类包含了date和time,所以就直接介绍了datetime类
2.2.1.1 创建datetime对象
- datetime.now()
获得当前日期和时间对象 - datetime.utcnow()
获得当前日期和时间对应的UTC(世界标准时间)时间对象 - 调用datetime()函数直接创建datetime类
2.2.1.2 datetime类的常用属性(9个)
为了区别datetime库名字,用someday代替生成的datetime对象
属性 | 描述 |
---|---|
someday.min | 固定返回datetime的最小时间对象,datetime(1,1,1,0,0) |
someday.max | 固定返回datetime的最大时间对象,datetime(9999,12,31,23,59,59,999999) |
someday.year | 返回someday包含的年份 |
someday.month | 返回someday包含的月份 |
someday.day | 返回someday包含的日期 |
someday.hour | 返回someday包含的小时 |
someday.minute | 返回someday包含的分钟 |
someday.second | 返回someday包含的秒钟 |
someday.microsecond | 返回someday包含的微秒值 |
2.2.1.3 datetime类常用的时间格式化方法(3个)
- someday.isoformat()
采用ISO 8601标准显示时间 - someday.isoweekday()
根据日期计算星期后返回1~7,对应星期一到星期日 - someday.strftime(format)
根据格式化字符串format进行格式显示的方法
格式化控制符在1.2.2
3. calendar库
- calendar.calendar(year,w,I,c)
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c;每日宽度间隔为w字符;每行长度为21* W+18+2* C;l是每星期行数
-
calendar.firstweekday( )
返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。 -
calendar.isleap(year)
是闰年返回True,否则为false -
calendar.leapdays(y1,y2)
返回在Y1,Y2两年之间的闰年总数 -
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)
相当于 print calendar.calendar(year,w,l,c) -
calendar.prmonth(year,month,w=2,l=1)
相当于 print calendar.month(year,w,l,c) -
calendar.setfirstweekday(weekday)
设置每周的起始日期码。0(星期一)到6(星期日) -
calendar.timegm(tupletime)
和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数) -
calendar.weekday(year,month,day)
返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)
4. random库
4.1 random库概述
4.1.1 random引用
import random
from random import *
4.1.2 random库介绍
- 主要用于产生各种分布的伪随机序列
- 采用梅森旋转算法生成伪随机数序列
4.2 random库的常用函数(9个)
函数 | 描述 |
---|---|
seed(a = None) | 初始化随机数种子,默认值为当前系统时间 |
random() | 生成一个[0.0,,1.0]之间的随机小数 |
randint(a,b) | 生成一个[a,b]之间的整数 |
getrandbits(k) | 生成一个k比特长度的随机整数 |
randrange(start,stop[,step]) | 生成一个[start,stop)之间以step为步数的随机整数 |
uniform(a,b) | 生成一个[a,b]之间的随机小数 |
choice() | 从序列类型,例如从列表中随机返回一个元素 |
shuffle(seq) | 将序列类型中的元素随机排列,返回打乱后的序列 |
sample(pop,k) | 从pop类型中随机选取k个元素,一列表类型返回 |
参考:
https://blog.****.net/zhouheng2018/article/details/79829430
https://blog.****.net/lyc44813418/article/details/86724629
http://www.imooc.com/wiki/detail/id/1911
《python语言恒程序设计基础(第二版)》