2013-03-22 2 views
2

오늘 날짜의 Google 캘린더 이벤트를 쉽게 볼 수있는 시간 형식을 얻으려고합니다. 데이터를 가져올 수 있지만 시작 시간과 종료 시간 모두에 대해 시간과 분만 데이터 형식을 지정하는 데 문제가 있습니다.Google 캘린더 API (Python)에서 시간 형식 지정

정보를 읽기 쉬운 목록으로 표시하고 싶습니다. 따라서 날짜와 초를 버리고 순서대로 시간 만 표시하고 싶습니다. 나는 슬라이스를 포함하여 여러 가지 다른 방법을 시도했으며, 운이없는 날짜로 변환하려고 시도했습니다. 2013-03-23T04 : 00 : 00 :

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) 

그것은이

종료 시간처럼 인쇄 00.000-05 : 00

와 나는 그것이

종료 시간이 될 선호 : 04 : 00

답변

2

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' 
을 ,617,

dateutil을 사용하지 않으려면 strptime으로 특정 형식을 사용하여 문자열을 구문 분석하십시오.

+0

dateutil.parser.parse (dstime) dt = dateutil.parser.parse (dstime) 시도 할 때 AttributeError : 'tuple'개체에 'read'특성이 없다는 오류가 표시됩니다. 어떤 아이디어 – user808996

+0

있어! dstime = dateutil.parser.parse (a_when.start_time) detime = dateutil.parser.parse (a_when.end_time) 인쇄 dstime.strftime ('I % : %의 M') 인쇄 detime an_event.when에 대한 a_when .strftime ('% I : % M') – user808996