【问题标题】:How to get time difference in hours between two dates (Django)如何获取两个日期之间的小时时差(Django)
【发布时间】:2017-03-31 07:14:21
【问题描述】:

我试图减去存储在数据库中的两个日期以获得小时数的差异。 但是这些值在查询集中,所以我无法减去它们。

例如:

date1 = table.objects.values_list('field1').filter(id=1))
date2 = table.objects.values_list('field1').filter(id=2))
timediff = date1-date2

如何做到这一点?

【问题讨论】:

    标签: python django python-2.7 django-views


    【解决方案1】:

    您可以通过这种方式简单地从查询集中获取值:

    date1 = table.objects.values_list('field1', flat=True).filter(id=1))[0]
    date2 = table.objects.values_list('field1', flat=True).filter(id=2))[0]
    timediff = date2 - date1
    

    另请注意 timediff 是 date2 - date1 而不是反之亦然。

    【讨论】:

    • TypeError: unsupported operand type(s) for -: 'tuple' and 'tuple' 它显示上述错误
    • 是的,现在解决了。但它显示差异为:1:05:26.965589。最后一个“965589”是什么。价值?
    • 时间格式,查看文档。无论如何,您可以根据需要格式化日期
    【解决方案2】:

    要获取时差,请使用 datetime 中的strptime 方法。

    FMT = '%H:%M:%S'
    timedelta = datetime.strptime(table.objects.values_list('field1', flat=True).filter(id=1))[0], FMT) - datetime.strptime(table.objects.values_list('field1', flat=True).filter(id=2))[0], FMT)
    

    它会返回一个timedelta

    【讨论】:

      猜你喜欢
      • 2014-07-13
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 2012-06-11
      • 2021-12-24
      相关资源
      最近更新 更多