【问题标题】:How to compare standard Python 9-tuple time format? [closed]如何比较标准的 Python 9 元组时间格式? [关闭]
【发布时间】:2012-03-06 03:46:37
【问题描述】:

我正在尝试编写一个简单的新闻提要聚合器。

我正在使用http://code.google.com/p/feedparser/,我得到标准的 Python 9 元组时间格式,例如 (2004, 1, 1, 19, 48, 21, 3, 1, 0) 对于每个帖子,http://packages.python.org/feedparser/date-parsing.html

如何比较这种时间格式?

如果我想知道提要中的一篇文章是否是新的,那么比较时间是唯一的方法吗?

非常感谢!

【问题讨论】:

    标签: python open-source


    【解决方案1】:

    比较时间可能是最好的方法,除非你想保留你见过的每篇文章来过滤完整的提要。

    9 元组的实际比较非常简单:Python 的默认元组排序逐项比较元素:

    >>> (2004, 1, 1, 19, 48, 21, 3, 1, 0) > (2004, 1, 1, 19, 48, 10, 3, 1, 0)
    True
    >>> (2004, 1, 1, 19, 48, 21, 3, 1, 0) > (2005, 1, 1, 19, 48, 21, 3, 1, 0)
    False
    

    这正是你所需要的。

    【讨论】:

      【解决方案2】:

      时间元组可以直接与d1 < d2d1 == d2进行比较。字段按字典顺序进行比较(即比较第一个字段,如果相等,则比较下一个字段,等等)。

      如果您想限制比较细节,请使用切片来切掉您不需要的字段:

      d1[:3] == d2[:3]       # compare just the year/month/day fields
      

      【讨论】:

        【解决方案3】:

        像这样?

        >>> date1 = (2004, 1, 1, 19, 48, 21, 3, 1, 0)
        >>> date2 = (2012, 1, 1, 19, 48, 21, 3, 1, 0)
        >>> date1[0] == date2[0]
        False
        >>> date1[0] == 2004
        True
        

        【讨论】:

        • 谢谢!但我不这么认为。它应该以更简单的方式进行比较。
        • @Susan,您还可以使用<> 进行比较,以检查一个日期是否早于/晚于另一个
        猜你喜欢
        • 2014-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-01
        相关资源
        最近更新 更多