python1.3-----time模块/datetime模块/calendar模块
time模块:
UTC(世界标准时间):格林尼治天文时间。中国时间和UTC的关系:中国时间=UTC+8
DST(夏令时):是一种节约能源而认为规定时间指定,在夏季调快1个小时。
时间的表示形式:
1.时间戳:
以整形或浮点型表示时间的一个以秒为单位的时间间隔。这个时间间隔的基础值是从1970年1月1日0点0分开始算起。
2.元组
一种python的数据结构,这个元组有9个整型内容:
year :~
month:~
day :~
hours:~
minutes:~
seconds:~
weekday:星期几(0-6)
Julia day :一年中的那一天(1-366)
DST flag (1:夏令时 -1:根据日期自己判断 0:正常格式)
3.格式化字符串:
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%f 毫秒(000000-999999)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%y 两位数的年份表示(00-99)
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
import time
#三种时间格式的转换:
c=time.time() #以浮点数的形式返回当前时间的时间戳,不需要参数,将时间戳赋值给c.
t=time.gmtime(c) #以时间戳为参数,转为UTC时间元组,用格林尼治时间也不多.
b=time.localtime(c) #以时间戳为参数,转为本地时间元组,用元组的情况不多.
m=time.mktime(b) #将本地时间转为时间戳.
s=time.asctime(b) #将时间元组转为字符串.
p=time.ctime(c) #将时间戳转为字符串.
q=time.strftime('%Y-%m-%d %H:%M:%S',b) #将b的时间转为格式化字符串形式.
w=time.strptime(q,'%Y-%m-%d %H:%M:%S') #将格式化的时间转化为元组.
三种时间格式的转换:
time模块的其它方法:
time.sleep(value) #延时value秒,value可以是小数和整数.
time.clock()#返回当前程序的cpu执行时间,windows从第二次开始,始终是以第一个调用此函数的时间戳作为基数.Unix始终返回全部的运行时间.
例如:测试电脑的计算性能
import time
sum=0
time.clock()
for i in range(100000000):
sum+=i
print(time.clock())
#corei5->16.5秒
datatime模块:
datatime模块基于time模块进行了封装,提供了更为实用的函数,datetime模块的接口更直观,更容易调用.
模块中的类:
datetime:同时有时间和日期
timedalta:主要计算时间差
tzinfo:时区相关
time:只关注时间
date:只关注日期
datetime的方法:
d1=datetime.datetime.now() #获取当前的时间.
d2=datetime.datetime(1999,10,1,10,28,25,123456) #指定一个时间:1999-10-1 10:28:25.123456
d3=d1.strftime('%Y-%m-%d %X') #将时间转化为'%Y-%m-%d %X'格式字符串
d4=datetime.datetime.strptime(d3,'%Y-%m-%d %X') #将格式化字符串转换为datetime对象.转换的格式要与字符串一致.
d5=datetime.datetime(1999,10,1,10,28,25,123456)
d6=datetime.datetime.now()
d7=d6-d5 #时间的减法.
type(d7) -------->datetime.timedalta.
d7.days #间隔的天数
d7.seconds #除天数外间隔的秒数.
日历模块:
import calendar
calendar.month(year,month) #返回指定某年某月的日历
calendar.calendar(year) #返回某年的日历
calendar.isleap(year) #闰年返回True,否则返回False
calendar.monthrange(year,month) #返回一个元组(year第month月的weekday的第一天,这个月总共的天数)
calendar.monthcalendar(year,month) #返回year年第month月每一周为元素的列表