一、time库
python的time库,是基于C语言的库函数,时间间隔是以秒为单位的浮点小数,每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。
1.获取当前时间
先导入time模块,函数time.localtime()获取当前时间,从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如t之类的函数。
time.time()返回当前时间戳
import time
t = time.localtime(time.time())
print(t)
返回struct_time元组,属性名称分别是年tm_year、月tm_mon、日tm_mday、时tm_hour、分tm_min、秒tm_sec、一周的第几日tm_wday、一年的第几日tm_yday、是否为夏令时tm_isdst(默认为-1)。
Tip:tm_wday返回值要在此基础上往后推一天
2.获取格式化时间
函数strftime()格式化日期
python中时间日期格式化符号:
-
%y 两位数的年份表示(00-99)
-
%Y 四位数的年份表示(000-9999)
-
%m 月份(01-12)
-
%d 月内中的一天(0-31)
-
%H 24小时制小时数(0-23)
-
%I 12小时制小时数(01-12)
-
%M 分钟数(00=59)
-
%S 秒(00-59)
-
%a 本地简化星期名称
-
%A 本地完整星期名称
- %b 本地简化的月份名称
- %B 本地完整的月份名称
- %c 本地相应的日期表示和时间表示
- %j 年内的一天(001-366)
- %p 本地A.M.或P.M.的等价符要和%I
- %U 一年中的星期数(00-53)星期天为星期的开始
- %w 星期(0-6),星期天为星期的开始
- %W 一年中的星期数(00-53)星期一为星期的开始
- %x 本地相应的日期表示
- %X 本地相应的时间表示
- %Z 当前时区的名称
- %% %号本身
3.其他的一些函数
- time.sleep()
该函数可以将程序置于休眠状态,直到某时间间隔之后再唤醒程序,让程序继续运行。可以运用到需要定时地查看程序运行状态。
#程序休眠5秒
print('start')
time.sleep(5)
print('wake up')
-
time.gmtime()
返回sturct_time格式的UTC时间(0时区 格林威治天文时间 世界标准时间) -
time.mktime()
将struct_time格式转换成时间戳,即将时间元组转换回时间值 -
time.clock()
在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。 -
time.asctime()
把一个时间的元组或者struct_time表示为‘星期 月份 日期 时:分:秒 年’。(如果没有输入参数,将会自动把time.localtime()作为参数传入) -
time.strptime()
把一个格式化时间字符串转化成struct_time,与strftime()是逆操作。 -
time.ctime()
把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果没有输入参数,默认将time.time()作为参数。
Tip:相当于time.asctime(time.localtime())
二、datetime库
基于time包的一个高级包,datetime模块提供了处理日期和时间的类,既有简单的方式,又有复杂的方式。它虽然支持日期和时间算法,但其实现的重点是为输出格式化和操作提供高效的属性提取功能。可以分为三大类:date类、time类和datetime类。
datetime库概述
以不同格式显示日期和时间是程序中最常用到的功能。Python提 供了一个处理时间的标准函数库datetime,它提供了一系列由简单 到复杂的时间处理方法。datetime库可以从系统中获得时间,并以 用户选择的格式输出。
datetime库以格林威治时间为基础,每天由3600*24秒精准定义 。该库包括两个常量:datetime.MINYEAR与datetime.MAXYEAR ,分别表示datetime所能表示的最小、最大年份,值分别为1与 9999。
(一)date类
- datetime.date:
表示日期的类。常用的属性有year, month, day;
- datetime.timedelta:
表示时间间隔,即两个时间点之间的长度,传递参数的时候,还可以是days, hours, milliseconds, microseconds。用于计算一些时间操作,如下例子:
date类的函数示例
(二)time类
- datetime.time
表示时间的类。常用的属性有hour, minute, second, microsecond;
- datetime.strptime
其中p = parsing 分解; 重构, 将输入的日期时间字符串转换为指定的格式并读取。 - datetime.strftime
f = formatting 将时间对象转换为另外一种时间格式(同time库一样有两种格式,字符串日期时间格式见上)
(三)datetime类
由于datetime.datetime类表达形式最为丰富,主要介绍这个类的 使用。使用datetime类需要用import保留字,具体引用datetime类 的方式如下:
from datetime import datetime
- datetime.datetime:
表示日期时间,将输入的时间数据转换为对应属性的输出(就是返回上面两个)
import datetime
t = datetime.datetime(2019,4,7,18,56)
print()
#输出结果 2019-04-07 18:56:00
-
datetime.tzinfo
时区相关信息对象的抽象基类。它们由datetime和time类使用,以提供自定义时间的而调整。tzinfo的子类对象,如timezone类的实例。 -
datetime.strftime()
方法是时间格式化最有效的方法,几乎可以以任何通用 格式输出时间,格式化字符串的数字左侧会自动补零. -
datetime.timezone
新增功能,实现tzinfo抽象基类,表示与UTC的固定偏移量 -
datetime.combine(date, time)
把指定的date和time对象整合成一个datetime对象
创建datetime对象的方法
- datetime.now():返回一个datetime类型,表示当前的日期和时间,精确 到微秒。
- datetime.utnow():返回一个datetime类型,表示当前日期和时间的UTC表 示,精确到微秒。
- datetime.datetime()
datetime对象有3个常用的时间格式化方法:
三、calendar库
该模块提供日历相关方法,提供了三大类:
- calendar.Calendar:该类提供了许多生成器,如星期的生成器、某月日历生成器
- calendar.TextCalendar:该类提供了按月、按年生成日历字符串的方法
- calendar.HTMLCalendar:类似TextCalendar,不过生成的是HTML格式日历
参考链接link
函数 | 用法 |
---|---|
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.calendar(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月) |
四、random库
在python中使用随机数需要的库,包含许多随机数生成器。
1.随机浮点数
函数random.uniform()生产指定范围内的浮点数,先导入random模块,函数有两个参数,一个上限一个下限。
import random
a = random.uniform(1,100)
print(a)
2.随机整数
函数random.randint()选取指定范围内的整数,若同上述一样有两个参数,若想选取1~100的随机偶数引入第三个参数‘2’。
并且randint 函数可以返回上界,而其他函数总是返回小于上界的值。 所有函数都有可能返回下界值。
3.随机字符
函数random.choice(需要的字符)随机选取指定字符串中的字符
函数random.sample(‘字符’,需要的个数)随机选取字符串中需要指定个数的字符,返回列表。
4.随机洗牌
函数random.shuffle()将列表中的元素打乱,个数及内容不变的返回列表。
a = ['you', 'are', 'beautiful', 'today']
random.shuffle(a)
print(a)
#返回结果['are', 'today', 'beautiful', 'you']
5.高斯伪随机数
函数random.guass()是random模块中包含的非恒定分布的随机生成器函数,使用了 gauss (高斯)函数来生成满足高斯分的布随机数字。
import random
print(random.gauss(5,2))
#输出3.780326216218919