python提供了一个time和calendar模块可以用于格式化日期和时间.时间间隔是以秒为单位的浮点小数
每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示
UTC :格林威治天文时间,世界标准时间,在中国为UTC+8
DST:夏令时是一种节约能源而人为规定的时间制度,在夏季调快一小时.
引入第三方库“ import time ”
1)#当前时间的时间戳,浮点数
time1 = time.time()
1522159406.3535008
2.1)#时间戳(浮点数)转换为UTC时间(格林威治天文时间**加粗样式**)
gm = time.gmtime(time1)
注意:gm是元组,包含9个元素
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=27, tm_hour=14, tm_min=3, tm_sec=26, tm_wday=1, tm_yday=86, tm_isdst=0)
2.2)# 时间戳转为本地时间(也是元组,包含9个元素)
lt = time.localtime(time1)
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=27, tm_hour=22, tm_min=3, tm_sec=26, tm_wday=1, tm_yday=86, tm_isdst=0)
3)#本地时间元组转为时间戳
mt = time.mktime(lt)
1522159406.0
4.1)# 将时间戳转换为字符串(浮点 转 格式化输出的日期格式)
ct = time.ctime(time1)
'Tue Mar 27 22:03:26 2018'
4.2)# 时间元组格式转为字符串(元组 转 格式化输出的日期格式)
st = time.asctime(lt)
'Tue Mar 27 22:03:26 2018'
%Y 完整的年份
%m 月份(01 - 12)
%M 分钟数(00 - 59
%d 一个月中的第几天(01 - 31)
%S 秒(01 - 61)
%H 一天中的第几个小时(24小时制,00 - 23)
%X 本地相应时间 (时分秒)
%x 本地相应日期
4.3)# 将本地时间元组转为指定的格式的字符串
time1 = time.time() 时间戳,浮点
lt = time.localtime(time1) 时间戳 转 元组
strf = time.strftime("%Y-%m-%d %H:%M:%S", lt) 元组 转 字符串(自定义格式)
'2018-03-27 22:03:26'
4.4) # 将指定时间格式的字符串,转为时间元组 (自定义格式字符串转元组)
strp = time.strptime('2018-03-27 22:03:26','%Y-%m-%d %X')
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=27, tm_hour=22, tm_min=3, tm_sec=26, tm_wday=1, tm_yday=86, tm_isdst=-1)
5)#休眠 单位s
time.sleep(2)
6)# 以浮点数计算的秒数返回当前cpu的时间,用来衡量不同的程序的耗时
time.clock()
xxxxxx
xxxxxx
time.sleep(2)
print(time.clock())
注意:这里不计算休眠时间time.sleep(2)
计算运算效率:末尾直接print(time.clock())打印的是从第一次time.clock()至现在的时间
datetime比time高级了不少,可以理解为datetime基于time进行了封装,提供了更多的实用的函数
#导入datetime模块
import datetime
1.1) #获取系统当前时间
datetime.datetime.now()
2019-06-17 19:04:16.693655
1.2) # 获取指定时间
datetime.datetime(2018, 3, 28, 21, 59, 7, 95015)
2018-03-28 22:47:11.006712
2) # 将时间转为字符串
time3 = datetime.datetime.strftime("%Y-%m-%d")
'2018-03-28'
3) #时间相减,返回一个时间间隔的"对象"
t1 = datetime.datetime.now()
# t2 = datetime.datetime(2018, 3, 28, 22, 53, 24, 709216)
t2 = datetime.datetime(2019, 6, 17, 19, 13, 24, 709216)
print(t1)
# 2019-06-17 19:09:45.660159
print(t2)
# 2018-03-28 22:53:24.709216
#2019-06-17 19:13:24.709216
t3 = t1 - t2
print(t3)
#如果大于1天:445 days, 20:16:20.950943
# 小于一天:0:01:29.416777
print(t3.days)
#445
0
print(t3.seconds)
#73153
89
处理年历和月历
返回指定的某月
import calendar
c1 = calendar.month(2019, 6)
print(c1)
calendar.calendar(2019)
3. 判断某一年是否为闰年,如果是返回True,否则返回False
calendar.isleap(2018)
False
4 返回在y1,y2之间闰年的总数
calendar.leapdays(2018, 2080)
15
5 返回某年某月的weekday的第一天和这个月所有的天数
c1 = calendar.monthrange(2019,6)
(5, 30)
index 5:表示6月1日是星期六
6 返回某个月以每一周为元素的序列
c1 = calendar.monthcalendar(2019, 5)
[[0, 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, 31, 0, 0]]
7 返回给定日期的日期码
c1 = calendar.weekday(2019,6,17)
0
备注:0表示周1,6表示周日
是一种设计思想,基于万物皆对象这个哲学观点
在生活中:
它是一种看待问题的思维方式,在思考问题的时候,着眼问题是怎样一步一步解决的,然后亲力亲为去解决问题[类似于公司里的执行者]
在程序中:
代码是从上而下顺序执行,各个模块之间的关系尽可能简单,在功能上相对独立,程序的流程在写程序的时候就已经决定.
在生活中:
它是另一种看待问题的方式,它着眼于找到一个具有特殊功能的个体,然后委托这个个体去帮你完成某件事.这是更符合人类思考习惯的思想[指挥者]
在程序中:
把数据以及对数据的操作方法放在一起,作为一个相互依存的整体–对象
把同类的对象进行抽象出其共性,形成类
类中大多数数据,只能用本类的方法进行处理
类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信
程序执行的流程由用户在使用的过程中决定
使用面向对象进行开发,需要先找到具有所需功能更的对象来使用,如果这个对象不存在,那么则需要创建这么一个具有所需功能的对象
注意:面向对象只是一种思想,并不是一门编程语言.
a. 都是看待问题的一种思维方式,都能解决问题
b. 面向过程着眼于所有的事情亲力亲为
c. 面向对象着眼于找到一个具有特殊功能的对象,委托这个对象实现你需要实现的功能.
python语言是面向对象的程序设计语言,类和对象是面向对象的核心
class Person():
#自定义函数方法
def run(self):
print("run")
def eat(self, food):
print("eat "+food)
#构造函数
def __init__(self, name, age, height, weight):
self.name = name
self.age = age
self.height = height
self.weight = weight
#析构函数
def __del__(self):
print("这里是析构函数")
#看作是函数入口
if __name__ == '__main__':
#实例化对象
per = Person("hanmeimei", 20, 170, 55)
#释放对象
del per
#注意:对象释放后就不能再进行访问了