python对不规则日期进行处理

  • A+
所属分类:程序开发

对不规则日期进行处理

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 "出现未知错误"

如果你有更好的方法可以留言,我们相互学习

  • 公众号
  • 扫一扫
  • weinxin
  • 打赏
  • 扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: