2011-02-09 14 views
3

私が提供するstart-minとstart-maxの日付の間に日付を戻すためにgoogle calendar apiを照会しています。しかし、そうすることで、私は返されるべきではない日付を取得しています。私がアクセスしているカレンダーには1月から2月の間に多くの日付がありますが、2010年に日付が返され、jan/feb以外の日付が返されます。ここに私の弦ですgoogleカレンダーのapi start-min/start-maxが適切な値を返さない

私はデモ1でカレンダーの場所を置き換えました。これを行うとき、私は私の公開カレンダーのリンクを使用し

http://www.google.com/calendar/feeds/[email protected]/public/full?alt=json&singleevents=true&sortorder=ascending&start-min2011-1-01T00:00:00%20&start-max2011-2-20T23:59:59 

ここで私が戻って取得しています日付があります。

[INFO] starttime = 2010-01-09T00:00:00.000Z end time = 2010-01-09T02:00:00.000Z 
[INFO] starttime = 2010-01-07T21:00:00.000Z end time = 2010-01-07T22:00:00.000Z 
[INFO] starttime = 2010-01-12T00:30:00.000Z end time = 2010-01-12T02:30:00.000Z 
[INFO] starttime = 2010-01-09T20:00:00.000Z end time = 2010-01-09T20:45:00.000Z 
[INFO] starttime = 2010-01-16T20:00:00.000Z end time = 2010-01-16T21:30:00.000Z 
[INFO] starttime = 2010-01-16T16:00:00.000Z end time = 2010-01-16T17:30:00.000Z 
[INFO] starttime = 2010-01-14T00:30:00.000Z end time = 2010-01-14T01:15:00.000Z 
[INFO] starttime = 2010-01-09T23:00:00.000Z end time = 2010-01-10T02:00:00.000Z 
[INFO] starttime = 2010-01-16T21:00:00.000Z end time = 2010-01-16T22:00:00.000Z 
[INFO] starttime = 2010-01-10T20:00:00.000Z end time = 2010-01-10T21:00:00.000Z 
[INFO] starttime = 2010-01-14T22:00:00.000Z end time = 2010-01-14T23:00:00.000Z 
[INFO] starttime = 2010-01-12T00:30:00.000Z end time = 2010-01-12T01:00:00.000Z 
[INFO] starttime = 2010-01-11T16:30:00.000Z end time = 2010-01-11T17:00:00.000Z 
[INFO] starttime = 2010-01-16T20:00:00.000Z end time = 2010-01-16T20:45:00.000Z 
[INFO] starttime = 2010-01-12T16:00:00.000Z end time = 2010-01-12T16:30:00.000Z 
[INFO] starttime = 2010-01-21T21:00:00.000Z end time = 2010-01-21T22:00:00.000Z 
[INFO] starttime = 2010-04-22T20:30:00.000Z end time = 2010-04-22T21:15:00.000Z 
[INFO] starttime = 2010-04-03T14:30:00.000Z end time = 2010-04-03T17:00:00.000Z 
[INFO] starttime = 2010-03-25T20:00:00.000Z end time = 2010-03-25T22:00:00.000Z 
[INFO] starttime = 2010-04-23T15:30:00.000Z end time = 2010-04-23T16:00:00.000Z 
[INFO] starttime = 2010-02-03T22:00:00.000Z end time = 2010-02-03T23:00:00.000Z 
[INFO] starttime = 2010-05-01T19:00:00.000Z end time = 2010-05-01T21:00:00.000Z 
[INFO] starttime = 2010-02-13T23:00:00.000Z end time = 2010-02-14T02:00:00.000Z 
[INFO] starttime = 2010-04-30T21:00:00.000Z end time = 2010-04-30T22:30:00.000Z 
[INFO] starttime = 2010-03-07T19:00:00.000Z end time = 2010-03-07T20:30:00.000Z 

GoogleのAPIリファレンス:ここhttp://code.google.com/apis/calendar/data/2.0/reference.html#Parameters

+0

あなたのタイムスタンプは私には無効です - 月の数字は2桁のフィールドでなければなりません( "01"だけでなく "01")。もちろん違いはありません。 – Pointy

答えて

2

最大の問題は、あなたのGETの構文であるように思われます。キーと値はありますが、割り当て文字はありません。つまり、等号が必要です。

また、先行0が必要で、その厄介な%20を削除する必要があります。

はこのお試しください:あなたが投稿URLで

http://www.google.com/calendar/feeds/[email protected]/public/full?alt=json&singleevents=true&sortorder=ascending&start-min=2011-01-01T00:00:00&start-max=2011-02-20T23:59:59

0

を、あなたは(抽出)している:

start-min=2011-01-01T00:00:00&start-max=2011-02-21T00:00:00 

あなたがしている:本当にする必要があります

start-min2011-1-01T00:00:00%20&start-max2011-2-20T23:59:59 

"="文字が欠けていて、月の値は2桁の数字でなければなりません。 "start-max"の値はで、です。これは "23:59:59"のものを実行する必要がないので便利です。次の日の真夜中を使用してください。

関連する問題