两个日期之间的区别python / Django

时间:2017-02-21 19:38:20

标签: django python-2.7 datetime time

我需要知道如何在edit_date(我的某个模型中的列)和datetime.now()之间获得时间。我的edit_date列采用DateTimeField格式。 (我使用的是Python 2.7和Django 1.10)

这是我试图做的功能:

def time_in_status(request):
    for item in Reporteots.objects.exclude(edit_date__exact=None):
        date_format = "%Y-%m-%d %H:%M:%S"
        a = datetime.now()
        b = item.edit_date
        c = a - b
        dif = divmod(c.days * 86400 + c.minute, 60)
        days = str(dif)

    print days

我唯一能从这个功能中获得的是经过的分钟数和秒数。我需要的是以下列格式获取此日期:

Time_elapsed = 3d 47m 23s

有什么想法吗?如果我不清楚您是否需要更多信息,请告诉我

感谢您的关注,

2 个答案:

答案 0 :(得分:1)

尝试类似

的内容
c = a - b
minutes = (c.seconds % 3600) // 60
seconds = c.seconds % 60
print "%sd %sm %ss" % (c.days, minutes, seconds)

答案 1 :(得分:1)

看看dateutil.relativedelta

http://dateutil.readthedocs.io/en/stable/relativedelta.html

from dateutil.relativedelta import relativedelta
from datetime import datetime
now = datetime.now()
ago = datetime(2017, 2, 11, 13, 5, 22)
diff = relativedelta(ago, now)
print "%dd %dm %ds" % (diff.days, diff.minutes, diff.seconds)

我是从记忆中做过的,所以你可能需要根据自己的需要进行调整。