Python标准库time,datetime,calendar,random的使用

标准库time

time模块中时间表现的格式主要有三种:
时间戳timestamp
是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。

它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。

返回时间戳的函数主要有time()、clock()等。

时间元组struct_time
日期、时间是包含许多变量的,所以在Python中定义了一个元组struct_time将所有这些变量组合在一起,包括:4位数年、月、日、小时、分钟、秒等。

struct_time元组共有9个元组,

返回struct_time的函数主要有gmtime(),localtime(),strptime()。

所有变量及要求如下:

序号字段对应的struct_time元组的属性
04位数年tm_year2008
1tm_mon1 到 12
2tm_mday1到31
3tm_hour时 0到23
4分钟tm_min0到59
5tm_sec0到61 (60或61 是闰秒)
6一周的第几日tm_wday0到6 (0是周一)
7一年的第几日tm_yday1到366 (儒略历)
8夏令时tm_isdst-1, 0, 1, -1是决定是否为夏令时的旗帜

格式化时间format time

  • strftime()函数将获取的计算机能识别的时间格式转换成便于人类识别的格式
  • strptime()函数将便于人类识别的时间格式转换成计算机能识别的时间格式

time

1、time.time()
返回当前时间的时间戳(1970纪元后经过的浮点秒数)

>>> import time;
>>> time.time();
1554693461.8102486

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

>>> import time;
>>> time.sleep(5);

3、time.gmtime()
将一个时间戳转换为UTC时区(0时区)的struct_time,可选的参数sec表示从1970-1-1以来的秒数。其默认值为time.time(),函数返回time.struct_time类型的对象。

>>> import time;
>>> time.gmtime();
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=8, tm_hour=4, tm_min=41, tm_sec=5, tm_wday=0, tm_yday=98, tm_isdst=0)

4、time.localtime()
获取当前时间,
从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。

>>> import time;
>>> time.localtime();
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=8, tm_hour=11, tm_min=37, tm_sec=33, tm_wday=0, tm_yday=98, tm_isdst=0)

5、time.mktime()
执行与gmtime(), localtime()相反的操作,它接收struct_time对象作为参数,返回用秒数来表示时间的浮点数。

如果输入的值不是一个合法的时间,将触发 OverflowError 或 ValueError。

>>> time.mktime(time.localtime())
1554698704.0

6、time.strftime(format[, t])
格式化日期

>>> time.strftime("%Y-%m-%d %H:%M:%S")
'2019-04-08 12:27:55'

7、time.strptime()
根据指定的格式把一个时间字符串解析为时间元组。

time.strptime(string[, format])
string – 时间字符串。
format – 格式化字符串。

>>> time.strptime("8 Apr 19","%d %b %y");
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=98, tm_isdst=-1)

8、time.asctime()
获取格式化时间

>>> import time;
>>> time.asctime();
'Mon Apr  8 12:18:50 2019'

9、time.ctime([secs])
把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。

如果参数未给或者为None的时候,将会默认time.time()为参数。

它的作用相当于 asctime(localtime())

>>> import time;
>>> time.ctime();
'Mon Apr  8 20:16:29 2019'
时间日期格式化符号
指令描述
%a简化星期名称,如Sat
%A完整星期名称,如Saturday
%b简化月份名称,如Nov
%B完整月份名称,如November
%c当前时区日期和时间
%d月内中的一天(0-31)
%H24小时制小时数(0-23)
%I12小时制小时数(01-12)
%j年内的一天(001-366)
%m月份(01-12)
%M分钟数(00-59)
%pAM或PM,AM表示上午,PM表示下午
%S秒(00-59)
%U一年中第几个星期(00-53)星期天为星期的开始
%w星期几(0-6),星期天为星期的开始
%W一年中第几个星期(00-53)星期一为星期的开始
%x本地日期,如’11/12/16’
%X本地时间,如’17:46:20’
%y简写年名称,00-99。如16
%Y完整年名称,000-9999。如2016
%Z当前时区名称(PST:太平洋标准时间)
%%代表一个%号本身

标准库datetime

datatime比time要高级一些,用一些处理日期,时间和时间间隔的函数。

datetime可以理解为datetime两个组成部分。

date是指年月日构成的日期(相当于日历),time是指时分秒微秒构成的一天24小时中的具体时间(相当于手表)。

可以将这两个分开管理(datetime.date类datetime.time类),也可以将两者合在一起(datetime.datetime类)。

包含如下的类型:

  • datetime.datetime代表了日期和一天的时间。
  • datetime.date代表日期,在1到9999之间。
  • datetime.time 代表时间和独立日期。
  • datetime.timedelta 代表两个时间或者日期的间隔。
  • datetime.tzinfo 实现时区支持

1,datetime.datetime

datetime类有很多参数,datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]]),返回年月日,时分秒

  • datetime.datetime.ctime():将datetime.datetime类型转化成str类型
>>> datetime.datetime.ctime(datetime.datetime.now())
'Mon Apr  8 20:52:49 2019'
  • datetime.datetime.now().date():返回当前日期时间的日期部分
>>> datetime.datetime.now().date()
datetime.date(2019, 4, 8)
  • datetime.datetime.now().time():返回当前日期时间的时分秒
>>> datetime.datetime.now().time()
datetime.time(20, 51, 38, 981016)
  • datetime.datetime.fromtimestamp()
  • datetime.datetime.now():返回当前系统时间
>>> datetime.datetime.now()
datetime.datetime(2019, 4, 8, 20, 49, 26, 238143)
  • datetime.datetime.replace()
  • datetime.datetime.strftime():由日期格式转化为字符串格式
datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
'2019-04-08 20:55:46'
  • datetime.datetime.strptime():由字符串格式转化为日期格式
>>> datetime.datetime.strptime('2019-04-08 20:55:46','%Y-%m-%d %H:%M:%S')
datetime.datetime(2019, 4, 8, 20, 55, 46)

2,datetime.date

date类有三个参数,datetime.date(year,month,day),返回year-month-day

1.datetime.date.ctime()

返回格式如 Sun Apr 16 00:00:00 2017

>>> datetime.date(2019,4,13).ctime()
'Sat Apr 13 00:00:00 2019'

2.datetime.date.fromtimestamp(timestamp)

根据给定的时间戮,返回一个date对象;datetime.date.today()作用相同

>>> datetime.date.fromtimestamp(123456789)
datetime.date(1973, 11, 30)

3.datetime.date.isocalendar()

返回格式如(year,month,day)的元组,

>>> datetime.date(2019,4,13).isocalendar()
(2019, 15, 6)

4.datetime.date.isoformat()

返回格式如YYYY-MM-DD

>>> datetime.date(2019,4,13).isoformat()
'2019-04-13'

5.datetime.date.isoweekday()

返回给定日期的星期(0-6)星期一=0,星期日=6 这里表明下python3中是从[1-7]表示的 就是本来是星期几现在显示就是星期几

>>> datetime.date(2019,4,13).isoweekday()
6

6.datetime.date.replace(year,month,day)

替换给定日期,但不改变原日期

>>> datetime.date(2019,4,13).replace(2019,4,12)
datetime.date(2019, 4, 12)

7.datetime.date.strftime(format):

把日期时间按照给定的format进行格式化。

datetime.date(2019,4,13).strftime("%Y-%m-%d %H:%M:%S")
'2019-04-13 00:00:00'

8.datetime.date.timetuple()

返回日期对应的time.struct_time对象

>>> datetime.date(2019,4,13).timetuple()
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=13, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=103, tm_isdst=-1)

9.datetime.date.weekday()

返回日期的星期

 datetime.date(2019,4,13).weekday()
5

3.datetime.time类

time类有5个参数,datetime.time(hour,minute,second,microsecond,tzoninfo),返回08:29:30

1.datetime.time.replace()

>>> datetime.time(17,30,00).replace()
datetime.time(17, 30)

2.datetime.time.strftime(format):

按照format格式返回时间

>>> datetime.time(17,30,00).strftime("%Y-%m-%d %H:%M:%S")
'1900-01-01 17:30:00'

3.datetime.time.tzname():

返回时区名字

4.datetime.time.utcoffset():

返回时区的时间偏移量

4,datetime.timedelta类

获取当前时间

>>> datetime.datetime.now()
datetime.datetime(2019, 4, 13, 10, 40, 34, 650486)

获取五天后的时间

>>> datetime.datetime.now() + datetime.timedelta(5)
datetime.datetime(2019, 4, 18, 10, 41, 43, 197395)

获取五天后的时间

>>> datetime.datetime.now() - datetime.timedelta(5)
datetime.datetime(2019, 4, 8, 10, 43, 37, 299398)

获取三个小时后的时间

>>> datetime.datetime.now() + datetime.timedelta(hours=3)
datetime.datetime(2019, 4, 13, 13, 44, 2, 907477)
>>> 

获取三个小时前的时间

>>> datetime.datetime.now() - datetime.timedelta(hours=3)
datetime.datetime(2019, 4, 13, 7, 44, 48, 587841)

calendar库

calendar库的函数都是与日历相关的。
星期一是默认的第一天,星期天是默认的最后一天,如果要更改设置需要调用calendar.setfirstweekday()函数。

calendar库包含以下内置函数

  1. calendar.prmonth(year,month)
    打印给定月份的日历
>>> import calendar
>>> calendar.prmonth(2019, 4)
     April 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
  1. calendar.prcal(year)
    打印给定年份的日历
>>> calendar.prcal(2019)
                                  2019

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6                   1  2  3                   1  2  3
 7  8  9 10 11 12 13       4  5  6  7  8  9 10       4  5  6  7  8  9 10
14 15 16 17 18 19 20      11 12 13 14 15 16 17      11 12 13 14 15 16 17
21 22 23 24 25 26 27      18 19 20 21 22 23 24      18 19 20 21 22 23 24
28 29 30 31               25 26 27 28               25 26 27 28 29 30 31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7             1  2  3  4  5                      1  2
 8  9 10 11 12 13 14       6  7  8  9 10 11 12       3  4  5  6  7  8  9
15 16 17 18 19 20 21      13 14 15 16 17 18 19      10 11 12 13 14 15 16
22 23 24 25 26 27 28      20 21 22 23 24 25 26      17 18 19 20 21 22 23
29 30                     27 28 29 30 31            24 25 26 27 28 29 30

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
 1  2  3  4  5  6  7                1  2  3  4                         1
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       2  3  4  5  6  7  8
15 16 17 18 19 20 21      12 13 14 15 16 17 18       9 10 11 12 13 14 15
22 23 24 25 26 27 28      19 20 21 22 23 24 25      16 17 18 19 20 21 22
29 30 31                  26 27 28 29 30 31         23 24 25 26 27 28 29
                                                    30

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6                   1  2  3                         1
 7  8  9 10 11 12 13       4  5  6  7  8  9 10       2  3  4  5  6  7  8
14 15 16 17 18 19 20      11 12 13 14 15 16 17       9 10 11 12 13 14 15
21 22 23 24 25 26 27      18 19 20 21 22 23 24      16 17 18 19 20 21 22
28 29 30 31               25 26 27 28 29 30         23 24 25 26 27 28 29
                                                    30 31
  1. calendar.firstweekday( )
    返回当前每周起始日期的设置。
    默认情况下,首次载入caendar模块时返回0,即星期一。
>>> calendar.firstweekday( )
0
  1. calendar.isleap(year)
    是闰年返回True,否则为false。
>>> calendar.isleap(2019)
False
>>> calendar.isleap(2018)
False
>>> calendar.isleap(2000)
True
  1. calendar.month(year,month,w=2,l=1)
    返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
>>> calendar.month(2019,4,w=2,l=1)
'     April 2019\nMo Tu We Th Fr Sa Su\n 1  2  3  4  5  6  7\n 8  9 10 11 12 13 14\n15 16 17 18 19 20 21\n22 23 24 25 26 27 28\n29 30\n'
  1. calendar.calendar(year,w=2,l=1,c=6)
    返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
>>> calendar.calendar(2019,w=2,l=1,c=6)
'                                  2019\n\n      January                   February                   March\nMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su\n    1  2  3  4  5  6                   1  2  3                   1  2  3\n 7  8  9 10 11 12 13       4  5  6  7  8  9 10       4  5  6  7  8  9 10\n14 15 16 17 18 19 20      11 12 13 14 15 16 17      11 12 13 14 15 16 17\n21 22 23 24 25 26 27      18 19 20 21 22 23 24      18 19 20 21 22 23 24\n28 29 30 31               25 26 27 28               25 26 27 28 29 30 31\n\n       April                      May                       June\nMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su\n 1  2  3  4  5  6  7             1  2  3  4  5                      1  2\n 8  9 10 11 12 13 14       6  7  8  9 10 11 12       3  4  5  6  7  8  9\n15 16 17 18 19 20 21      13 14 15 16 17 18 19      10 11 12 13 14 15 16\n22 23 24 25 26 27 28      20 21 22 23 24 25 26      17 18 19 20 21 22 23\n29 30                     27 28 29 30 31            24 25 26 27 28 29 30\n\n        July                     August                  September\nMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su\n 1  2  3  4  5  6  7                1  2  3  4                         1\n 8  9 10 11 12 13 14       5  6  7  8  9 10 11       2  3  4  5  6  7  8\n15 16 17 18 19 20 21      12 13 14 15 16 17 18       9 10 11 12 13 14 15\n22 23 24 25 26 27 28      19 20 21 22 23 24 25      16 17 18 19 20 21 22\n29 30 31                  26 27 28 29 30 31         23 24 25 26 27 28 29\n                                                    30\n\n      October                   November                  December\nMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su\n    1  2  3  4  5  6                   1  2  3                         1\n 7  8  9 10 11 12 13       4  5  6  7  8  9 10       2  3  4  5  6  7  8\n14 15 16 17 18 19 20      11 12 13 14 15 16 17       9 10 11 12 13 14 15\n21 22 23 24 25 26 27      18 19 20 21 22 23 24      16 17 18 19 20 21 22\n28 29 30 31               25 26 27 28 29 30         23 24 25 26 27 28 29\n                                                    30 31\n'
  1. calendar.leapdays(y1,y2)
    返回在Y1,Y2两年之间的闰年总数。
>>> calendar.leapdays(1900,2019)
29
  1. calendar.monthcalendar(year,month)
    返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
>>> calendar.monthcalendar(2019,4)
[[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, 0, 0, 0, 0, 0]]
  1. calendar.monthrange(year,month)
    返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。
>>> calendar.monthrange(2019,4)
(0, 30)
  1. calendar.setfirstweekday(weekday)
    设置每周的起始日期码。0(星期一)到6(星期日)。
    将星期日设置为一周第一天
>>> calendar.setfirstweekday(firstweekday=6)
>>> print(calendar.firstweekday())
6
  1. calendar.timegm(tupletime)
    和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数)。

  2. calendar.weekday(year,month,day)
    返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。

>>> calendar.weekday(2019,4,13)
5
  1. calendar.weekheader(n)
    返回包含星期的英文缩写,n表示英文缩写所占的宽度
>>> calendar.weekheader(4)
'Sun  Mon  Tue  Wed  Thu  Fri  Sat '
  1. calendar.monthcalendar(year, month)
    返回一个月中天数列表(不是当前月份的天数为0),按周划分,为一个二维数组。
    包括月份开始那周的所有日期和月份结束那周的所有日期
>>> calendar.monthcalendar(2019,4)
[[0, 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, 0, 0, 0, 0]]
>>> 

random库

random() 返回随机生成的一个实数,它在[0,1)范围内
random库包含两类函数,常用的共8个

  • 基本随机函数: seed(), random()
  • 扩展随机函数:randint(), getrandbits(), uniform(), randrange(), choice(),
    shuffle()。

基本随机函数

  1. seed()
    初始化给定的随机数种子,默认为当前系统时间

  2. random()
    生成一个随机的浮点数,范围是在 0.0~1.0 之间。

>>> import random
>>> random.random()
0.33018729126932533

扩展随机函数

  1. randint()
    从参数指定的范围里随机选择一个整数返回来
>>> import random
>>> random.randint(10,100)
46
  1. getrandbits()
    getrandbits(k)生成一个k比特长的随机整数
>>> import random
>>> random.getrandbits(54)
1308655171282813
  1. uniform()
    设定浮点数的范围,一个是上限,一个是下限。
>>> import random
>>> random.uniform(10, 20)
15.951933825013633
  1. randrange()
    生成一个[m,n)之间以k为步长的随机整数
    random.randrange(start, stop[, step])
>>> import random
>>> random.randrange(10,100,10)
90
  1. choice()
    从序列中获取一个随机元素。
>>> import random
>>> random.choice("吴世勋")
'吴'
  1. shuffle()
    shuffle(seq) 将序列seq中元素随机排列,返回打乱后的序列
>>> import random
>>> s=[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> random.shuffle(s)
>>> print(s)
[8, 3, 5, 4, 1, 2, 6, 9, 7]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的影城管理系统,源码+数据库+论文答辩+毕业论文+视频演示 随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多生活之中,随之就产生了“小徐影城管理系统”,这样就让小徐影城管理系统更加方便简单。 对于本小徐影城管理系统的设计来说,系统开发主要是采用java语言技术,在整个系统的设计中应用MySQL数据库来完成数据存储,具体根据小徐影城管理系统的现状来进行开发的,具体根据现实的需求来实现小徐影城管理系统网络化的管理,各类信息有序地进行存储,进入小徐影城管理系统页面之后,方可开始操作主控界面,主要功能包括管理员:首页、个人中心、用户管理、电影类型管理、放映厅管理、电影信息管理、购票统计管理、系统管理、订单管理,用户前台;首页、电影信息、电影资讯、个人中心、后台管理、在线客服等功能。 本论文主要讲述了小徐影城管理系统开发背景,该系统它主要是对需求析和功能需求做了介绍,并且对系统做了详细的测试和总结。具体从业务流程、数据库设计和系统结构等多方面的问题。望能利用先进的计算机技术和网络技术来改变目前的小徐影城管理系统状况,提高管理效率。 关键词:小徐影城管理系统;Spring Boot框架,MySQL数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值