Datetime模块使用小节

2021-02-19  本文已影响0人  Eachann_ab08

datetime.date类

生成时间类对象

todaytime1 = datetime.date.today()
print(todaytime1,type(todaytime1))
todaytime2 = datetime.date(2021,2,19)
print(todaytime2,type(todaytime2))

类属性

print(datetime.date.min)
print(datetime.date.max)
print(datetime.date.resolution)

实例属性得到年月日

print(todaytime1.year, type(todaytime1.year))
#可以看出得到的是一个int类数
print(todaytime1.month)
print(todaytime1.day)

常用的实例方法

isoformat :返回标准格式时间字符串和strftime返回自定义格式的时间字符串

print(todaytime1.isoformat(),type(todaytime1.isoformat()))
#返回标准格式,类似2021-02-01这种,返回的是字符串
print(todaytime1.strftime("%Y年/%m月/%d日"))
#注意格式定义中Y要大写,y是小写会省略前两位

replace:替换年月日

print(todaytime1.replace(2022,10,1))
print(todaytime1.replace(todaytime1.year,10))
print(todaytime1.replace(year=2022))

其他一些方法

#datetime.date对象——>结构化时间对象
print(todaytime1.timetuple(),type(todaytime1.timetuple()))
#toordinal方法,从0001-01-01到现在的天数
print(todaytime1.toordinal())
#weekday方法,返回周几
print(todaytime1.weekday(),type(todaytime1.weekday()))#0代表周一
print(todaytime1.isoweekday(),type(todaytime1.isoweekday()))#1代表周一

datetime.time类

基本和datetime.date类似

#创建datetime.time实例
time = datetime.time(14,15,30)#还可以写到微秒和时区
print(time, type(time))
#类方法
print(datetime.time.min)
print(datetime.time.max)
print(datetime.time.resolution)
#实例属性
print(time.hour)
print(time.minute)
print(time.second)
print(time.microsecond)
#方法
print(time.isoformat())
print(time.strftime("%H时,%M分,%S秒,%f微秒"))#注意H,M,S为大写

datetime.datetime类

生成datetime.datetime实例

print(datetime.datetime(2020,2,19,14,37,30))
print(datetime.datetime.today())
print(datetime.datetime.now(tz=None))#tz是设置时区
#通过字符串生成datetime.datetime对象,这是datetime.datetime独有的方法
datetime1 = datetime.datetime.strptime("2020-02-19 14:37:30","%Y-%m-%d %H:%M:%S")
print(datetime1,type(datetime1))
#根据datetime.date对象和datetime.time对象创建datetime.datetime对象
date = datetime.date(2020,2,18)
time = datetime.time(14,47,39)
datetime1 = datetime.datetime.combine(date,time)
print(datetime1,type(datetime1))

datetime.datetime类的类属性和实例属性和datetime.date类似,这里不赘述,不过datetime可以和时间戳,结构化对象,以及格式化字符串之间互相转化,具体方法可以参考下图,图片来自B站“程序员在思考”Up主


image.png

datetime.timedelta类

生成时间差

deltatime =datetime.timedelta(days=5,hours=-8)
deltatime =datetime.timedelta(hours=75)#会自动把75h转换成3day带3h
deltatime =datetime.timedelta(weeks=2)
print(deltatime)

利用datetime.timedelta来计算目标日期

currenttime = datetime.datetime.today()
print("当前时间为{}".format(currenttime.strftime("%Y年-%m月-%d日 %H:%M:%S")))
targettime =currenttime + datetime.timedelta(days=-5,hours=8)
print("5天8小时前时间为{}".format(targettime.strftime("%Y年-%m月-%d日 %H:%M:%S")))

利用datetime.timedelta来计算时间差

date1 = datetime.datetime(2020,2,19,14,37,30)
date2 = datetime.datetime(2020,2,14,14,34,30)
deltadatetime = date1-date2
print(deltadatetime,type(deltadatetime))
print(deltadatetime.seconds)
上一篇下一篇

猜你喜欢

热点阅读