Help us understand the problem. What is going on with this article?

DateFormatを書き間違えて画面に何も表示されなくなった話

More than 1 year has passed since last update.

起きた事

開発中のアプリのホームに何も表示されなくなった。
ホームでは、今月と翌月の予定を表示するので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

つまり、

スクリーンショット 2018-12-31 6.00.10.png

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

勉強になった、年末こわこわ事件でした。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした