python 相对时间转换

查看:99
本文介绍了python 相对时间转换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

a = "3月10天前"
b = "10天3小时前"
c = "7小时5分钟前"

根据当前系统时间转换为 0000-00-00 00:00 的格式,没有小时/分钟的分别算作00

解决方案

def gtime(atime):
    match = re.match(r'(\d+)(\D+)(\d+)(\D+)',atime, re.M|re.I)
    match2 = re.match(r'(\d+)(\D+)',atime, re.M|re.I)
    days = 0
    secs = 0
    if match:
        d1 = int(match.group(1))
        d2 = int(match.group(3))
        t1 = match.group(2)
        t2 = match.group(4)

        if t1 == u"月":
            days += d1 * 30
        elif t1 == u"天":
            days += d1
        elif t1 == u"小时":
            secs += d1 * 3600
        elif t1 == u"分":
            secs += d1 * 60

        if t2 == u"天":
            days += d2
        elif t2 == u"小时":
            secs += d2 * 3600
        elif t2 == u"分钟":
            secs += d2 * 60
        elif t2 == u"秒":
            secs += d2
    elif match2:
        d1 = int(match2.group(1))
        t1 = match2.group(2)
        if t1 == u"月":
            days += d1 * 30
        elif t1 == u"天":
            days += d1
        elif t1 == u"小时":
            secs += d1 * 3600
        elif t1 == u"分":
            secs += d1 * 60
        elif t1 == u"秒":
            secs += d1
    time = now + datetime.timedelta(days=-days, seconds=-secs)
    return time

时间越远,准确度越低,反正也只是粗略时间,月取30天就行了

换算没有PHP strtotime()那么方便,可以直接用年、月等任何时间单位进行计算,不知道python有没有提供类似功能的模块

这篇关于python 相对时间转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆