2

現在の日のGoogleカレンダーからイベントをリストするために、読みやすい時間形式を取得しようとしています。データを取り込むことはできますが、データを開始時刻と終了時刻の両方の時間と分だけにフォーマットするのに問題があります。

情報を一覧で見やすく表示したいので、日付と秒を落として時刻だけを順番に表示したいです。スライスして日時に変換しようとするなど、いくつかの異なる方法を試しましたが、うまくいきませんでした。

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

4

1 に答える 1

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'

dateutil を使用したくない場合は、 strptime で特定の形式を使用して文字列を解析することもできます

于 2013-03-22T18:22:25.593 に答える