python日期时间和日期比较

2024-10-04 09:29:42 发布

您现在位置:Python中文网/ 问答频道 /正文

基于我发现的示例here,我想获取icalendar数据并对其进行处理。到目前为止我的代码是:

from datetime import datetime, timedelta
from icalendar import Calendar
import urllib
import time

ics = urllib.urlopen('https://www.google.com/calendar/ical/xy/basic.ics').read()
ical1 = Calendar.from_ical(ics)
for vevent in ical1.subcomponents:
    if vevent.name == "VEVENT":
        title = str(vevent.get('SUMMARY').encode('utf-8'))
        start = vevent.get('DTSTART').dt   # datetime
        end = vevent.get('DTEND').dt       # datetime

        print title
        print start
        print end
        print type(start)
        print "---"

它正在从我的谷歌日历中获取标题和开始+结束日期。工作和输出如下所示:

^{pr2}$

如您所见,开始和结束日期可以是datetime.datetime或{}类型。这取决于我在谷歌日历中有一个条目是2整天(那么它是一个datetime.date)还是一个时间段,比如3个小时(那么它是一个datetime.datetime)。我只需要打印今天和未来4周的日期/日期时间。我在比较日期和日期时间时遇到了问题(这似乎是不可能的),所以我没能做到。如何比较日期时间和保存数据类型的日期?如果我需要“投”他们,没关系。我无法打印“今天+4周”,只有“4周”。在


Tags: fromimportgetdatetimetitle时间urllibstart
2条回答

Datetime对象可以通过调用date来返回适当的日期对象:start.date(),然后可以将其与另一个日期对象进行比较:start.date() < datetime.date.today() + datetime.timedelta(4*7)

您需要转换为通用类型以进行比较。由于datetime和date都有相同的日期,因此转换日期类型是有意义的。只需从datetime中提取date()。例如:

>>> import datetime
>>> datetime.date(2014, 2, 22) == datetime.datetime.now().date()
True

相关问题 更多 >