【python】python日期格式统一化

项目实际需要,进行如下编码 

# -*- coding: utf-8 -*-
"""
Created on Tue Jan  8 18:02:03 2019

@author: liuty
@e-mail: liuty66@163.com
@introduction:
            解析时间模块
"""


str1='  2019-01-08'
str2='2019-1-8 00:00:00'
str3='2019年1月8日'
str4='2019年01月08日'
str5='2019/1/8'
str6='2019/01/08 00:00'
str7='2019-1-8'

def str2date(str_date):
    str_date=str_date.strip()
    year=1900
    month=1
    day=1
    if(len(str_date)>11):
        str_date=str_date[:11]
    if(str_date.find('-')>0):
        year=str_date[:4]
        if(year.isdigit()):
            year=int(year)
        else:
            year=0
        month=str_date[5:str_date.rfind('-')]
        if(month.isdigit()):
            month=int(month)
        else:
            month=0
        if(str_date.find(' ')==-1):
            day=str_date[str_date.rfind('-')+1:]
        else:
            day=str_date[str_date.rfind('-')+1:str_date.find(' ')]
        if(day.isdigit()):
            day=int(day)
        else:
            day=0
    elif(str_date.find('年')>0):
        year=str_date[:4]
        if(year.isdigit()):
            year=int(year)
        else:
            year=0
        month=str_date[5:str_date.rfind('月')]
        if(month.isdigit()):
            month=int(month)
        else:
            month=0
        day=str_date[str_date.rfind('月')+1:str_date.rfind('日')]
        if(day.isdigit()):
            day=int(day)
        else:
            day=0
    elif(str_date.find('/')>0):
        year=str_date[:4]
        if(year.isdigit()):
            year=int(year)
        else:
            year=0
        month=str_date[5:str_date.rfind('/')]
        if(month.isdigit()):
            month=int(month)
        else:
            month=0
        if(str_date.find(' ')==-1):
            day=str_date[str_date.rfind('/')+1:]
        else:
            day=str_date[str_date.rfind('/')+1:str_date.find(' ')]
        if(day.isdigit()):
            day=int(day)
        else:
            day=0
    else:
        year=1900
        month=1
        day=1
    if month<10:
        month='0'+str(month)
    if day<10:
        day='0'+str(day)
    return '%s-%s-%s' % (year,month,day)

print(str2date('2017-12-22  a'))

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值