内置模块-时间模块
1.time 时间模块:import time
import time
概念:
- 时间戳: 1574905882.6581771 表示从1970年1月1日0时0分0秒到现在的一个秒数,目前可以计算到2038年
- 时间字符串: Thu Nov 28 09:54:08 2019
- 时间元组: time.struct_time(tm_year=2019, tm_mon=11, tm_mday=28, tm_hour=9, tm_min=55, tm_sec=32, tm_wday=3, tm_yday=332, tm_isdst=0)
- time.time() 获取当前系统的时间戳
import time
print(time.time())
>>>1592051489.5272338
- time.ctime() 获取当前系统时间,时间字符串
import time
print(time.ctime())
>>>Sat Jun 13 20:27:55 2020
- time.local() 获取当前系统时间,时间元组
import time
a = time.time()
print(time.localtime())
>>>time.struct_time(tm_year=2020, tm_mon=6, tm_mday=13, tm_hour=20, tm_min=28, tm_sec=49, tm_wday=5, tm_yday=165, tm_isdst=0)
- 以上时间字符串和时间元组可以通过指定的时间戳来获取
import time
a = 100000000.5272338 #时间戳
print(time.ctime(a))
print(time.localtime(a))
>>>Sat Mar 3 17:46:40 1973
time.struct_time(tm_year=1973, tm_mon=3, tm_mday=3, tm_hour=17, tm_min=46, tm_sec=40, tm_wday=5, tm_yday=62, tm_isdst=0)
- 使用localtime方法获取的时间元组,如何格式化成为 xxxx年xx月xx日 时:分:秒 星期几
import time
a = time.localtime()
print(f'{a.tm_year}年,{a.tm_mon}月,{a.tm_mday}日')
>>>2020年,6月,13日
【上面这种字符串格式化方法比较麻烦,所以有了下面的time.strftime() 方法】
- time.strftime() 格式化时间 年-月-日 时:分:秒 星期几
import time
res = time.strftime('%Y-%m-%d %H:%M:%S %w')
#里面的字符分别是 年(4个字符的),月(大M是分钟),日,小时,分钟,秒
print(res)
>>>2020-06-13 20:42:59 6
#如果这样就直接输出当前的时间
import time
a = time.time() #时间戳
b = time.localtime(a) #变为字符串格式化时间
c = time.strftime('%Y-%m-%d',b) #通过字符串格式化时间来得到年-月-日格式
print(c)
>>>2020-06-14
- time.sleep(秒) 在给定的秒数内暂停调用线程的执行。该参数可以是浮点数,以指示更精确的休眠时间。
import time
res = time.strftime('%Y-%m-%d %H:%M:%S %w')
print(time.strftime('%Y-%m-%d %H:%M:%S %w'))
time.sleep(3)
print(time.strftime('%Y-%m-%d %H:%M:%S %w'))
>>>2020-06-13 20:53:13 6
#这俩输出之间停了3秒钟
2020-06-13 20:53:16 6
- time.perf_counter() 计算程序的运行时间
import time
start = time.perf_counter()
for i in range(1000000):
if i > 0:
pass
end = time.perf_counter()
print(end-start)
>>>0.050299300000000005
2. calendar 日历模块:import calendar
-
calendar.monthrange(年,月)
返回指定年份和月份的数据,数据包括:月份的第一天是周几,和月份中的天数。
import calendar
res = calendar.monthrange(2019,11)
print(res)
>>>(4, 30)
#4代表是周几,30代表月份中的天数
#注意!这里周几的下标是从0开始的,也就是说4代表是周五!
#打印某年某月的日历
import calendar
# 返回指定年份和月份的数据,月份的第一天是周几,和月份中的天数。
# calendar.monthrange(年,月)
def showdate(year,month):
res = calendar.monthrange(year,month)
days = res[1] # 当前月份的天数
w = res[0]+1 # 当前月份第一天周几信息
print(f'====={year}年{month}月的日历信息=====')
print(' 一 二 三 四 五 六 日 ')
print('*'*28)
# 实现日历信息的输出
d = 1
while d <= days:
# 循环周
for i in range(1,8):
# 判断是否输出
if d > days or (i < w and d == 1):
print(' '*4,end="")
else:
print(' {:0>2d} '.format(d),end="")
d+=1
print()
print('*'*28)
showdate(2019,12)