一、time模块
time模块中时间戳,时间结构化对象,互相转换
import time
print(time.time())
# 时间戳,从1970年1月1日到现在的秒数
t =time.localtime()
# 获取时间结构化对象
print(t.tm_year)
# 结构化对象中年份,还有很多属性
print(time.mktime(time.localtime()))
# 将结构化时间转化为时间戳
重点
#将结构化时间对象转化为字符串时间,得到一个字符串。
strftime(格式化时间模型,结构化时间对象)
%x 相当于%H:%M:%S
print(time.strftime("%Y-%m-%d %X",time.localtime()))
将字符串时间转成结构化时间,前后格式必须一致,得到的是结构时间对象
print(time.strptime(“2016:1:1 17:50:36”,"%Y:%m:%d %X"))
补充:python中时间比大小指的是datetime类型,字符串时间比大小是按照字符顺序,从前往后依次比较字符的ASCII数值,例如‘abc’要小于‘abd’
***注意:
time模块中的时间戳float型,可以用来做数字运算
结构化时间对象不能用于做数字运算,字符串时间不能用于做数字运算.
time.sleep()可以是程序休眠一定时间,可用来模拟并发
二、datetime模块
import datetime
datetime中包含如下类:
“”"
date 日期对象,常用的属性有year, month, day
time 时间对象
datetime 日期时间对象,常用的属性有hour, minute, second, microsecond
timedelta 时间间隔,即两个时间点之间的长度
“”"
1.date类
date对象有year,month,day三部分组成
today = datetime.date.today()
print(today)
#date对象转化为字符串,进行格式化输出
print(today.__format__('%Y:%m:%d'))
2.time类
time对象由time类由hour小时、minute分钟、second秒、microsecond毫秒
和tzinfo五部分组成,其中可以省略后面部分的参数
time = datetime.time(12,20,59)
print(time)
time对象转化为字符串
print(time.format("%H-%M-%S"))
print(time.strftime("%H-%M-%S"))
3.datetime类
datetime类其实是可以看做是date类和time类的合体,其大部分的方法和属性都继承于这二个类
专属于datetime的类和方法now = datetime.datetime.now()
# 创建datetime对象
now = datetime.datetime(2017,11,11,20,50,10)
print(type(now))
根据字符串日期,转化为datetime对象,参数一和参数二的格式必须对应
dt = datetime.datetime.strptime(“2018-11-11 20:53:20”,"%Y-%m-%d %H:%M:%S")
print(dt)
datetime模块中一个time对象和一个date对象,可以合并成一个datetime对象
now = datetime.datetime.now()
其中now.date()是从datetime对象中获取date对象,now.time()从datetime对象中获取time对象
print(datetime.datetime.combine(now.date(),now.time()))
注意:
1.datetime对象在自定义时间的时候如果没有只指定了date部分属性,time属性按0来设置。如:custume = datetime.datetime(2017,11,11)打印custume获取的结果是2017-11-11 00:00:00,但是前面的日期格式一定要符合日期的规范,否则会报错.
2.datetime模块中定义的date,time,datetime对象都可以用来做数字运算操作。
4.timedelta类
timedelta类是用来计算二个datetime对象的差值的,timedelta方法,传递常用参数有,years,months,days,hours,minitus,seconds
#这里给的都是一些小型的例子
获取时间差,仍然是在datetime类中实现的
today = datetime.datetime(2018,11,20,22)
yesterday = datetime.datetime(2018,11,19,21,30)
print(today-yesterday)
计算当前时间向后八小时,五分钟,四秒的时间
t1 = datetime.datetime.now()
t2 = t1 + datetime.timedelta(hours=8,minutes=5,seconds=4)
print(t2)
获取现在的时间是周几,获得的是整形数字
today = datetime.datetime.now()
today_weekday = today.isoweekday()
计算上周一和周日的日期
1.先获取今天日期
today = datetime.date.today()
#2.先回到本周周一
# 2.1获取今天是周数
today_weekday = today.isoweekday()
#2.2今天日期减去今天的周数+1
this_monday = today-datetime.timedelta(today_weekday-1)
#3.本周周一减去7天就是上周一
last_moday = this_monday - datetime.timedelta(days=7)
print(last_moday)