对不规则日期进行处理
import time
import re
def get_time(time_str):
'''
不规则日期处理函数\n
例如:'6-1',' 6 - 1 ','6--1','6-- --1'\n
对这些不规则日期处理,如果月或者日大于当前的月或日,就判断为去年的日期
'''
# 使用localtime方法转换成localtime
time_local=time.localtime(int(time.time()))
# 采用filter方法去除list中的空值,使用sllit对字符串分割
hm=list(filter(None,re.split(':',time_str)))
tiemData=''
try:
if len(hm)>1:
dt_hm=time.strftime("%Y/%m/%d",time_local)
for i in hm:
dt_hm +=str(int(i))
# 使用strptime方法转换成时间数组
tiemData = time.strptime(dt_hm, "%Y/%m/%d%H%M")
md=list(filter(None,re.split('-',time_str)))
if len(md)>1:
md_list=[]
for i in md:
md_list.append(str(int(i)))
# 判断月或日是否大于现在的月或日,大于则为去年日期
if int(md[0])>=time_local.tm_mon and int(md[1])>time_local.tm_mday:
y=str(time_local.tm_year-1)
else:
y=str(time_local.tm_year)
dt_ymd=y+"/"+"/".join(md_list)
# 使用strptime方法转换成时间数组
tiemData = time.strptime(dt_ymd, "%Y/%m/%d")
# 使用strftime方法转换时间格式
return time.strftime("%Y/%m/%d %H:%M",tiemData)
except ValueError:
return "参数无效"
except BaseException:
return "出现未知错误"
如果你有更好的方法可以留言,我们相互学习