使用Python从Google日历API格式化时间

使用Python从Google日历API格式化时间,python,google-calendar-api,google-api-python-client,Python,Google Calendar Api,Google Api Python Client,我试图获得一个易于阅读的时间格式,从谷歌日历中列出当天的事件。我可以拉入数据,但我在格式化数据时遇到了一个问题,即数据的开始时间和结束时间都是小时和分钟 我想在一个易于阅读的列表中显示信息,因此我想删除日期和秒,只按顺序显示时间。我尝试了几种不同的方法,包括切片和尝试转换成日期时间,但运气不好 date = datetime.datetime.now() tomorrow = date.today() + datetime.timedelta(days=2) yesterday = date.

我试图获得一个易于阅读的时间格式,从谷歌日历中列出当天的事件。我可以拉入数据,但我在格式化数据时遇到了一个问题,即数据的开始时间和结束时间都是小时和分钟

我想在一个易于阅读的列表中显示信息,因此我想删除日期和秒,只按顺序显示时间。我尝试了几种不同的方法,包括切片和尝试转换成日期时间,但运气不好

date  = datetime.datetime.now()
tomorrow = date.today() + datetime.timedelta(days=2)
yesterday = date.today() - datetime.timedelta(days=1)
now = str
data = '{:%Y-%m-%d}'.format(date)
tdata = '{:%Y-%m-%d}'.format(tomorrow)
ydata = '{:%Y-%m-%d}'.format(yesterday)
def DateQuery(calendar_service, start_date=data,  end_date=tdata):
  print 'Date query for events on Primary Calendar: %s to %s' % (start_date, end_date,)
  query = gdata.calendar.service.CalendarEventQuery('default', 'private', 'full')
  query.start_min = start_date
  query.start_max = end_date
  feed = calendar_service.CalendarQuery(query)
  for i, an_event in enumerate(feed.entry):
    print '\'%s\'' % (an_event.title.text)
    for a_when in an_event.when:
      dstime = (a_when.start_time,)
      detime = (a_when.end_time,)
      print '\t\tEnd time:     %s' % (dstime)
      print '\t\tEnd time:     %s' % (detime)
它是这样印的

结束时间:2013-03-23T04:00:00.000-05:00

我更喜欢这样


结束时间:04:00

使用dateutil模块:

>>> import dateutil.parser
>>> dateutil.parser.parse('2013-03-23T04:00:00.000-05:00')
>>> dt = dateutil.parser.parse('2013-03-23T04:00:00.000-05:00')
>>> dt.strftime('%I:%M')
'04:00'

如果不想使用dateutil,还可以使用特定格式解析字符串。

当我尝试使用dateutil.parser.parse(dstime)dt=dateutil.parser.parse(dstime)时,我得到一个错误,即AttributeError:“tuple”对象没有属性“read”。任何人都知道!对于处于事件中的事件,当:dstime=dateutil.parser.parse(a_-when.start\u-time)detime=dateutil.parser.parse(a_-when.end\u-time)打印dstime.strftime(“%I:%M”)打印detime.strftime(“%I:%M”)