昨年末、Android用のTwitter公式クライアントに登録済みのアカウントが突如全てログアウトされるという事態が起きました。
その原因は、Twitterのサーバで日時を表す文字列を出力する際に、本来使うべきyyyyではなく、誤ってYYYYを使ってしまったからだという話が出ています。
yyyy
年(西暦)を出力
YYYY
ある年における「最初の木曜日を含む週が、その年の第1週である」というルールで年(西暦)を出力。
例えば 2015/1/1 は木曜日なのでその週の日は日曜日~土曜日まで全て2015年の第1週という解釈になり、 2014/12/28(日曜)~2014/12/31(水曜) の時に YYYY を使うと 2015 を返します。
日付フォーマット yyyy と YYYY の違い
この2つ。年末年始の数日以外はずっと同じ値を返すので間違って使ってしまってもバグに気付きにくいですし、にもかかわらず、本番環境で発生してしまったとすればそのときにはもう年末年始の休暇に入ってしまっているだろうから対応がドチャクソ面倒くさいという、本当に厄介なヤツですね…。
コメントする