1. 时间组、时间戳、时间串相互转化
import time
# 时间戳
tt=time.time()
print(tt)
# 时间组
b=time.localtime(tt)
print(b)
# 时间组转化为时间串(striftime,asctime)
c=time.strftime('%Y/%m/%d %H:%M:%S',b)
e=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
h=time.asctime(b)
print(c)
print(e)
print(h)
# 时间串转化为时间组
d=time.strptime('2019-01-01','%Y-%m-%d')
print(d)
# 时间戳转化为时间串(2种方法)
f=time.ctime(tt)
g=time.asctime(time.localtime(time.time()))
print(f)
print(g)
2. 时间组、日期、时间串之间相互转化
import time,datatime
# 时间串转化为时间组(stript)
a=time.strptime('2019-01-01 12:30:59','%Y-%m-%d %X')
print(a)
# 时间组转化为时间串(striftime,asctime)
b=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
c=time.asctime(time.localtime(time.time()))
print(b)
print(c)
#日期转化为时间组
d=datetime.datetime(2019,10,20)
datetime.timetuple()
#时间组转化为日期
e=time.localtime(time.time())
e1=datetime.datetime(e[0],e[1].e[2],e[3],e[4],e[5])
print(e1)
#日期转化为时间串
f=datetime.datetime(2019,10,20)
f1=datetime.strptime(f,'%Y-%m-%d')
print(f1)
#时间串转化为日期
g1='2019-2-18 8:30:20'
g=g1.strftime('%Y-%m-%d %H:%M:%S')
print(c)
3. 日历
import calendar
#打印2020年8月日历
calendar.prmonth(2020,8)
#以元组的形式返回,该月份第一天是星期几,以及月份的天数
print(calendar.monthrange(2021, 8))
#打印2019年日历
calendar.prcal(2019)
#打印2021年8月19日是星期几
print(calendar.weekday(2021, 8, 19)+1)
print(calendar.firstweekday())
calendar.setfirstweekday(1)
print(calendar.firstweekday())
#打印1980到2022年的闰年
for i in range(1980, 2022):
if i%4==0:
print(i,end=' ')
#判断2000到2022年闰年的数量
calendar.leapdays(2000,2022)
#判断是否是闰年
caleadar.isleap(2019)
案例一:
import time,calendar
atime=time.time()
print(atime)
# ②将atime时间戳转为转为本地时间组,保存在atuple中并打印输出
atuple=time.localtime(atime)
print(atuple)
# ③分别获取当前时间的年,月和日并打印输出
print(atuple[0])
print(atuple[1])
print(atuple[2])
# ④将atime时间戳转为UTC时间组,保存在gtuple中并打印输出
gtuple=time.gmtime(atime)
print(gtuple)
# ⑤将atuple时间组转为时间字符串,保存在astring中并打印输出
astring=time.strftime("%Y/%m/%d %H:%M:%S",gtuple)
print(astring)
# ⑥打印当前日期的月历
calendar.prmonth(2021,8)
# ⑦打印当前日期的年历
calendar.prcal(2021)
# ⑧打印当前
# 日期是星期几
print(calendar.weekday(2021, 8, 19)+1)
# (2)
# 时间操作:
# ①输入一个时间
t='2020-8-12 12:23:40'
# ②将该时间转为时间组
tt=time.strptime(t,"%Y-%m-%d %H:%M:%S")
print(tt)
# ③将时间组转为时间戳
ttt=time.mktime(tt)
print(ttt)
案例二:
# 提示用户输入日期,时间格式为2021 - 10 - 1
# d='2021-10-1'
# # 根据输入的字符串转化为相应的时间组并输出
d1=time.strptime(d,'%Y-%m-%d')
# # 将时间组再转化为相应的时间戳并输出
d2=time.mktime(d1)
print(d2)
# # 获取当前的时间戳
t=time.time()
print(t)
# # 计算距离国庆节还有多少天并且输出?
t1='2021/10/1'
t2=time.mktime(time.strptime(t1,'%Y/%m/%d'))
print('距离国庆剩余:{}天'.format((t2-t)/60/60/24))
# # 计算一下输入的日期是周几
a=input('请输入日期:')
b=time.strptime(a,'%Y/%m/%d')
print(b,type(b))
ayear=b[0]
amonth=b[1]
aday=b[2]
print(ayear)
c=calendar.weekday(ayear,amonth,aday)
print(f'{a}是星期{c+1}')
# 计算国庆节当天是周几?请重新输入密码
print(calendar.weekday(2021, 10, 1)+1)
案例三:
# 1)写出当前你电脑上的Unix时间(时间戳),输出内容以及它的类型
t=time.time()
print(t,type(t))
# 2)将它分别转化成本地时间组和格林尼治时间组并输出
print(time.localtime(time.time()))
print(time.gmtime(time.time()))
# 3)ylp =’2021 - 5 - 22 13: 07:00’是袁隆平院士去世的时间,请把这个字符串转换成时间组
ylp='2021-5-22 13:07:00'
ttp=time.strptime(ylp,'%Y-%m-%d %H:%M:%S')
print(ttp)
# 4)再把这个时间组转化为时间戳,并输出
ts=time.mktime(ttp)
print(ts)
# 5)计算并输出袁隆平院士去世的小时数,格式如下:
tp=time.time()
print('袁隆平去世小时数为:{}时'.format((tp-ts)/60/60))
# 4.写一个函数,随机生成三个数字y, m, d,分别作为年月日:
# 输出: 某某的生日是y年m月d日
import random,calendar
def birth():
y=random.randint(1980,2021)
m=random.randint(1,12)
t=calendar.monthrange(y,m)
d=random.randint(1,t[1])
print(f'某某的生日是{y}年{m}月{d}日')
birth()
案例四:
# (1)读取数据信息
# ①使用文件处理方式,读取a.txt中的数据信息
# ②读取b.txt中的数据信息
import datetime
import calendar
import time
with open('a.txt','at+',encoding='utf8') as file:
# file.write('2017/12/20')
file.seek(0)
a=file.read()
print(a)
with open('b.txt','at+',encoding='utf8') as f:
# f.write('2019/3/16')
f.seek(0)
b=f.read()
print(b)
# (2)时间计算处理
# ①将两个文件中读取出的字符串信息转化为时间戳
# ②利用时间戳信息,比较两个时间相差多少天(时间戳信息差值,再将秒换算成天)
a1=datetime.datetime.strptime(a,'%Y/%m/%d')
a2=datetime.datetime.strptime(b,'%Y/%m/%d')
print(abs(a1-a2))
b1=time.mktime(time.strptime(a,'%Y/%m/%d'))
b2=time.mktime(time.strptime(b,'%Y/%m/%d'))
print(abs(b1-b2)/60/60/24)
# (3)查看自当天开始,向后20天所有周日的日期
# ①获取当天的日期
# ②使用循环,计算自当天推后1-20天的日期
# ③判断上一问中的日期是否是周日,满足条件就打印
a=datetime.datetime(2021,8,20)
for i in range(1,21):
b=datetime.timedelta(days=i)
c=a+b
d=datetime.datetime(c.year,c.month,c.day)
if d.isoweekday()==7:
print(c)
案例五:
# ①使用datetime.date类获取当前日期并输出
# ②查找并输出从当前日期开始,30天前的日期
# ③查找并输出从当天开始到前30天之间所有周2对应的日期
# ④新建文件a.txt
# ⑤将所有周2的日期写入a.txt
print('----------------------------------------------')
d1=datetime.date.today()
aa=''
for i in range(1,30):
b=datetime.timedelta(days=i)
c = a + b
if c.isoweekday()==2:
aa+=str(c)+'\n'
print(c)
with open('a1.txt','wt+') as file:
file.write(aa)
file.seek(0)
b=file.read()
print(b)
案例六:
#编写Python程序,将2015-1-16 12:00:00转化为unix时间,并计算此时间3天前的格式化时间和unix时间。
# ①获取当前主机信息:操作系统名
import sys,os,time,datetime,socket
print(os.name)
print(socket.gethostname())
# ②计算当前时间3天前的格式化时间和unix时间
print(time.strftime('%Y-%m-%d', time.localtime(time.time())))
print(time.time())
a=datetime.datetime.today()
b=datetime.timedelta(days=3)
print(a-b)
c=(a-b).strftime('%Y-%m-%d %H:%M:%S')
print(c)
d=time.mktime(time.strptime(c, '%Y-%m-%d %H:%M:%S'))
print(d)
# ③将获取到的当前时间写入文件 t1.txt 中,录屏演示时需要打开文件查看
with open('t1.txt','wt+') as file:
file.write(str(time.time())+'\n')
file.write(str(a-b)+'\n')
file.write(str(c)+'\n')
file.write(str(d))
file.seek(0)
b=file.read()
print(b)
# 3.['吴文哲','刘鑫','冯鑫','杨欣冉','王欢']请在D盘的根目录下分别创建几个文件夹,分别以这几位同学的姓名命名。
# 请把创建的文件夹删除,并做到重复删除时不报错误。
print('---------------------------------------')
a=['吴文哲','刘鑫','冯鑫','杨欣冉','王欢']
for i in a:
os.chdir(r'D:')
os.mkdir(i)
try:
os.rmdir(i)
except:
print('重复删除')
# 4.在你的桌面上建文件夹目录如下:人工智能\1911A\jack
if not os.path.exists(r'C:\Users\86178\Desktop\人工智能\1911A\jack'):
os.makedirs(r'C:\Users\86178\Desktop\人工智能\1911A\jack')