python 时间转换:前天、3天前、1周前、1小时前、昨天、2019-11-04、11-04、11月04日

时间转换:前天、3天前、1周前、1小时前、昨天、2019-11-04、11-04、11月04日

均转化为  '%Y-%m-%d %H:%M:%S'  此格式。

import re
import time
from datetime import datetime


def beforeHours2Date(hours, date_format='%Y-%m-%d %H:%M:%S'):
    hours = int(hours)
    t = time.time() - hours*60*60
    t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(t))
    return t

def beforeHours2Date1(hours, date_format='%Y-%m-%d %H:%M:%S'):
    hours = int(hours)
    t = time.time() - hours*60*60
    t = time.strftime('%Y-%m-%d', time.localtime(t))
    return t

def parse_ymd(s):

    if '月' in s:
        s=s.replace('月','-').replace('日','')
        mon_s, day_s = s.split('-')
        year_s='2020'
        a=datetime(int(year_s), int(mon_s), int(day_s))
        a=a.strftime('%Y-%m-%d %H:%M:%S') 
        
    long=re.findall('(-)',s)
    if len(long) == 2: 
        year_s, mon_s, day_s = s.split('-')
        a=datetime(int(year_s), int(mon_s), int(day_s))
        a=a.strftime('%Y-%m-%d %H:%M:%S')
        
    if len(long) == 1:
        mon_s, day_s = s.split('-')
        year_s='2020'
        a=datetime(int(year_s), int(mon_s), int(day_s))
        a=a.strftime('%Y-%m-%d %H:%M:%S')   
    else:
        if '前天' in s:
            a=3
            a=beforeHours2Date(a, date_format='%Y-%m-%d %H:%M:%S')
        
        if '天前' in s:
            a=re.findall('(.*?)天前',s)
            a=beforeHours2Date(a[0], date_format='%Y-%m-%d %H:%M:%S')
        
        if '周前' in s:
            a=7
            a=beforeHours2Date(a, date_format='%Y-%m-%d %H:%M:%S')

        if '小时前' in s:
            a=re.findall('(.*?)小时前',s)
            a=beforeHours2Date(a[0], date_format='%Y-%m-%d %H:%M:%S')

        if '昨天' in s:
            a=24
            b=re.findall('昨天 (.*)',s)
            a=beforeHours2Date1(a, date_format='%Y-%m-%d %H:%M:%S')
            a=a+' '+b[0]+':00'
            
    return a

      

匿名

发表评论

匿名网友