首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python日期时间和日期比较

问python日期时间和日期比较
EN

Stack Overflow用户
提问于 2014-02-22 15:55:58
回答 2查看 291关注 0票数 3

基于我找到的这里示例,我想获取icalendar数据并处理它。到目前为止,这是我的代码:

代码语言:javascript
复制
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 "---"

它正在从我的google日历中获取标题和start+end日期。此工作和输出如下所示:

代码语言:javascript
复制
This is a Test Title
2012-12-20 15:00:00+00:00
2012-12-20 18:00:00+00:00
<type 'datetime.datetime'>
---
Another Title
2012-12-10
2012-12-11
<type 'datetime.date'>
---
    ...

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-22 16:15:12

您将需要转换为公共类型进行比较。由于datetime和date的日期都有共同的日期,所以转换->日期类型是有意义的。只需从日期时间提取日期()即可。例如:

代码语言:javascript
复制
>>> import datetime
>>> datetime.date(2014, 2, 22) == datetime.datetime.now().date()
True
票数 1
EN

Stack Overflow用户

发布于 2014-02-22 16:14:48

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21956644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档