目录
一、time模块
import time
t=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
print("type(t)=",type(t))
print("t=",t)
t=time.strptime(t,"%Y-%m-%d %H:%M:%S")
print("type(t)=",type(t))
print("t=",t)
二、datatime模块
1、data日期类
#定义data:传递年,月,日
import datetime
a=datetime.date(2024,3,6)
print("type(a)=",type(a))
print("a=",a)
#获取年月日
print("a.year=",a.year)
print("a.month=",a.month)
print("a.day=",a.day)
#周几,周一-周日:0-6
print("a.weekday=",a.weekday())
#data之间进行减法
a=datetime.date(2024,10,1)
b=datetime.date(2024,10,7)
print("type(b-a)=",type(b-a))
print("b-a=",b-a)
2、time时间类
#定义time:转递时、分、秒
import datetime
a=datetime.time(10,25,30)
print("type(a)=",type(a))
print("a=",a)
#获取时、分、秒
print("a.hour=",a.hour)
print("a.minute=",a.minute)
print("a.second=",a.second)
3、datatime日期时间类
# #定义datatime传递年,月,日,时,分,秒
import datetime
a=datetime.datetime(2024,3,6,20,21,30)
print("type(a)=",type(a))
print("a=",a)
print("a.data=",a.date())
print("a.time=",a.time())
d=datetime.date(2024,3,6)
t=datetime.time(20,24,30)
b=datetime.datetime.combine(d,t)
print("b=",b)
print(b>a)
print(b-a)
4、timedelte时间间隔类
import datetime
a=datetime.datetime(2024,3,6,20,21,30)
delta=datetime.timedelta(days=100)
#计算100天后
b=a+delta
print(b)
#计算100天前
b=a-delta
print(b)
import datetime
a=datetime.datetime(2024,3,6,20,21,30)
b=datetime.datetime(2024,12,20,9,0,0)
delta=b-a
#时间差
print(delta)
#输出时间差天数
print(delta.days)
#输出秒数
print(delta.seconds)
#统一换成秒数
print(delta.total_seconds())
#统一换成分钟
print(delta.total_seconds()/60)
#统一换成小时
print(delta.total_seconds()/(60*60))
5、日期时间和字符串的转换
#日期,时间,日期时间转换为str:strftime
import datetime
d=datetime.date(2024,3,6)
print(d.strftime("%Y-%m-%d"))
t=datetime.time(21,5,30)
print(t.strftime("%H::%M::%S"))
dt=datetime.datetime.combine(d,t)
print(dt.strftime("%Y-%m-%d %H::%M::%S"))
#str转换为期时间:strptime(data_string,format)
import datetime
a=datetime.datetime.strptime("2024-3-6-12-20-30","%Y-%m-%d-%H-%M-%S")
print(a)
6、当前日期
例题:
import datetime
#定义起始日期、终止日期
start=datetime.date(1901,1,1)
end=datetime.date(2000,12,31)
ans=0
while start<=end:
#是否为周一
if start.weekday()==0:
ans+=1
start+=datetime.timedelta(days=1)
print(ans)
import datetime
#定义起始日期、终止日期
start=datetime.date(2022,1,1)
end=datetime.date(2022,12,31)
ans=0
while True:
#判断日期是否为顺子
#把start日期转换成yyyymmdd格式
now_data=start.strftime("%y%m%d")
if '012' in now_data or '123' in now_data:
ans+=1
start+=datetime.timedelta(days=1)
if start>end:
break
print(ans)