python学习笔记17(时间模块)

时间模块

时间的表示方式
格林尼治天文时间\世界协调时间(UTC):世界标准时间,北京时间等于UTC+8
夏令时(DST):是一种节约能源而人为规定时间制度,在夏季调快1个小时

时间的表示形式:
1、时间戳
以整型或浮点型表示时间的一个以秒为单位的时间间隔。代表当前时间与1970年1月1日相隔多少秒
2、元组
这个元组有以下9个整型内容
year
month
day
hours
minutes
seconds
weekday
Julia day
flag (1 或 -1 或0) #0代表UTC,1代表DST,-1代表自动判断
3、格式化字符串
%a 本地(locale)简化星期名称
%A 本地完整星期名称
%b 本地简化月份名称
%B 本地完整月份名称
%c 本地相应的日期和时间表示
%d 一个月中的第几天(01 - 31)
%H 一天中的第几个小时(24小时制,00 - 23)
%I 第几个小时(12小时制,01 - 12)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地am或者pm的相应符
%S 秒(01 - 61)
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份(00 - 99)
%Y 完整的年份
%Z 时区的名字(如果不存在为空字符)
%% ‘%’字符

time模块

import time

返回当前时间的时间戳,浮点数形式,不需要参数

c = time.time()
print(c)

将时间戳转为UTC时间元组

t = time.gmtime(c)
print(t)

将时间戳转为本地时间元组

b = time.localtime(c)
print(b)

#将本地时间元组转成时间戳

m = time.mktime(b)
print(m)

将时间元组转成字符串

s = time.asctime(b)
print(s)

将时间戳转为字符串

p = time.ctime(c)
print(p)

将时间元组转换成给定格式的字符串,参数2为时间元组,如果没有参数2,默认转当前时间

q = time.strftime("%Y-%m-%d %X", b)
print(q)
print(type(q))

将时间字符串转为时间元组

w = time.strptime(q, "%Y-%m-%d %X")
print(w)

延迟一个时间,整型或者浮点型

#time.sleep(4)

返回当前程序的cup执行时间

#Unix系统始终返回全部的运行时间
#windows从第二次开始,都是以第一个调用此函数的开始间戳作为基数
y1 = time.clock()
print("%d" % y1)    #输出:0
time.sleep(2)
y2 = time.clock()
print("%d" % y2)  #输出:2
time.sleep(2)
y3 = time.clock()
print("%d" % y3)    #输出:4

应用:

#CPU性能测试
import time

time.clock()
sum = 0
for i in range(100000000):
    sum += i
print(time.clock())    #输出:10.298342311553466

datetime模块
datetime比time高级了不少,可以理解为datetime基于time进行了封装,提供了各位使用的函数,datetime模块的接口更直观,更容易调用

datatime模块中的类:
datetime 同时有时间和日期
timedelta 主要用于计算时间的跨度
tzinfo 时区相关
time 只关注时间
date 只关注日期

示例:

    import datetime
   
    #获取当前时间
    d1 = datetime.datetime.now()
    print(d1)    #输出:2019-01-05 14:30:02.497453
    print(type(d1))    #输出:<class 'datetime.datetime'>
    
    #获取指定时间
    d2 = datetime.datetime(1999, 10, 1, 10, 28, 25, 123456)
    print(d2)    #输出:1999-10-01 10:28:25.123456
    
    #将时间转为字符串
    d3 = d1.strftime("%Y-%m-%d %X")
    print(d3)    #输出:2019-01-05 14:30:02
    print(type(d3))    #输出:<class 'str'>
    
    #将格式化字符串转为datetime对象
    #注意:转换的格式要与字符串一致
    d4 = datetime.datetime.strptime(d3, "%Y-%m-%d %X")
    print(d4)    #输出:2019-01-05 14:30:02
    d5 = datetime.datetime(1999, 10, 1, 10, 28, 25, 123456)
    d6 = datetime.datetime.now()
    d7 = d6 - d5
    print(d7)    #输出:7036 days, 4:01:37.373997
    print(type(d7))    #输出:<class 'datetime.timedelta'>
    
    #间隔的天数
    print(d7.days)    #输出:7036
    
    #间隔天数除外的秒数
    print(d7.seconds)    #输出:14497

日历模块

调用:

import calendar

返回指定某年某月的日历

print(calendar.month(2019, 7))
#输出:
     July 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

返回指定年的日历

print(calendar.calendar(2016))

闰年返回True,否则返回False

print(calendar.isleap(2000))
#输出:True

返回某个月的weekday的第一天和这个月所有的天数
print(calendar.monthrange(2019, 7))
#输出:(0, 31)

返回某个月以每一周为元素的列表

print(calendar.monthcalendar(2019,7))
#输出:[[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, 0, 0, 0, 0]]

猜你喜欢

转载自blog.csdn.net/weixin_42216171/article/details/85805344