时间管理-time模块,date模块,datetime模块
一、在正式学习时间管理之前,需要了解在系统中时间的集中显示形式,如下:
1)timestamp:时间戳,指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。
2)struct_time:结构体时间,示例:(tm_year=2013, tm_mon=10, tm_mday=11, tm_hour=11, tm_min=57, tm_sec=12, tm_wday=4, tm_yday=284, tm_isdst=0)。
3)format string:时间以特定格式的字符串显示。示例:“2018-12-14 11:00:00”
二、time模块学习:
1)print("localtime时间显示:{0}".format(localtime()))
# 结果:localtime时间显示:time.struct_time(tm_year=2018, tm_mon=12, tm_mday=14, tm_hour=11, tm_min=14, tm_sec=3, tm_wday=4, tm_yday=348, tm_isdst=0)
2)print("gmtime时间显示:{0}".format(gmtime()))
# 结果:gmtime时间显示:time.struct_time(tm_year=2018, tm_mon=12, tm_mday=14, tm_hour=3, tm_min=15, tm_sec=25, tm_wday=4, tm_yday=348, tm_isdst=0)
说明:localtime与gmtime都是将当前时间戳转化成结构体时间显示,但是可以看到tm_hour有区别,原因是:gmtime是0时区的时间,localtime是当前时区的时间。
3)t = localtime()
print("mktime时间显示:{0}".format(mktime(t)))
# 结果:mktime时间显示:1544757732.0
4)print(strftime('%Y-%m-%d %H:%M:%S', localtime()))
# 结果:2018-12-14 11:25:11
5)print(strptime('2018-12-13 19:57:11','%Y-%m-%d %H:%M:%S'))
# 结果:time.struct_time(tm_year=2018, tm_mon=12, tm_mday=13, tm_hour=19, tm_min=57, tm_sec=11, tm_wday=3, tm_yday=347, tm_isdst=-1)
6)sleep(2)
# 睡眠2秒
7)time()
# 获取时间戳
8)print(ctime())
# 结果:Fri Dec 14 11:37:16 2018
9)总结,三种时间类型的转换关系,如下:
struct_time--》timestamp(mktime函数)
timestamp--》struct_time(localtime,gmtime函数)
struct_time--》format string(strftime函数)
format string--》struct_time(strptime函数)
三、date模块
1)print(date.today())
# 结果:2018-12-14
2)d =date.today()
print(d.year)
print(d.month)
print(d.day)
print(d.weekday())
3)d2 = d.replace(2018, 12, 15)
print(d2)
四、datetime模块
1)d = datetime.now()
print(d)
# 当前时间
d1 = d - timedelta(days=1)
print(d1)
# 日期减一
d2 = d + timedelta(days=1)
print(d2)
# 日期加1
d3 = d + timedelta(hours=1)
print(d3)
# 时间减一