起きた事
開発中のアプリのホームに何も表示されなくなった。
ホームでは、今月と翌月の予定を表示するのでstartDateとendDateを指定してAPIリクエストを送っていた。
レスポンスが0件だったのでサーバの問題かなと思ったけど、どうもリクエストのパラメータがおかしいようだ。
{
"start_date" : "2019-12-30",
"end_date" : "2019-01-31",
}
今日は31日なので、end_dateは正しい。
が、start_dateが1年先の12/30になっている。
startDate.toFormat("YYYY-MM-dd")
> 2019-12-30
なんかおかしそう。2018-12-30になっていて欲しい。
結論
YYYY-MM-dd
ではなく、yyyy-MM-dd
を使わないとだめ
ちらっと調べた感じYYYY
は
ある年における「最初の木曜日を含む週が、その年の第1週である」というルールで年(西暦)を出力。
例えば 2015/1/1 は木曜日なのでその週の日は日曜日~土曜日まで全て2015年の第1週という解釈になり、 2014/12/28(日曜)~2014/12/31(水曜) の時に YYYY を使うと 2015 を返します。
引用:http://d.hatena.ne.jp/nakamura001/20150102/1420213850
つまり、

こんな感じで、該当年の最初の木曜日が含まれている週を全部該当年にするという事。(上の図だと30,31が2019年)
勉強になった、年末こわこわ事件でした。