Junit5の ParameterResolver
によってテストメソッドのパラメーターに渡せる日付文字列の形式をユーザーが自由に決められるようにするために、 DateTimeFormatter
を使っていた際に、どうしても月のパターン MMM
によって月が名前(例えば1月なら Jan
)にならないので、小3時間くらい悩んでました。
結果的には DateTimeFormatter
によってフォーマットされる日付の文字列は DateTimeFormatter
に渡される Locale
も関係するという初歩的だけど、ググってもあまり出てこない(くらいに初歩的な)事実を知らなかったがためにドハマリする結果になりました。
そこで、 Locale
と DateTimeFormatter
のパターンの組み合わせでどのような日付が出力できるか確認してみました(とはいっても)。
表示内容 | パターン | ja_JP | en_US | zh_CN |
---|---|---|---|---|
年 | Y |
2017 |
2017 |
2017 |
年 | YY |
17 |
17 |
17 |
年 | YYYY |
2017 |
2017 |
2017 |
年 | u |
2017 |
2017 |
2017 |
年 | uu |
17 |
17 |
17 |
年 | uuuu |
2017 |
2017 |
2017 |
四半期 | q |
1 |
1 |
1 |
四半期 | qq |
01 |
01 |
01 |
四半期 | qqq |
1 |
1 |
1 |
四半期 | Q |
1 |
1 |
1 |
四半期 | QQ |
01 |
01 |
01 |
四半期 | QQQ |
Q1 |
Q1 |
1季 |
四半期 | QQQQ |
第1四半期 |
1st quarter |
第1季度 |
月 | M |
1 |
1 |
1 |
月 | MM |
01 |
01 |
01 |
月 | MMM |
1 |
Jan |
一月 |
月 | MMMM |
1月 |
January |
一月 |
月 | L |
1 |
1 |
1 |
月 | LL |
01 |
01 |
01 |
月 | LLL |
1 |
1 |
一月 |
日 | d |
1 |
1 |
1 |
日 | dd |
01 |
01 |
01 |
曜日 | e |
1 |
1 |
1 |
曜日 | ee |
01 |
01 |
01 |
曜日 | eee |
日 |
Sun |
星期日 |
曜日 | eeee |
日曜日 |
Sunday |
星期日 |
曜日 | c |
1 |
1 |
1 |
曜日 | ccc |
日 |
Sun |
星期日 |
曜日 | cccc |
日曜日 |
Sunday |
星期日 |
曜日 | E |
日 |
Sun |
星期日 |
曜日 | EE |
日 |
Sun |
星期日 |
曜日 | EEE |
日 |
Sun |
星期日 |
曜日 | EEEE |
日曜日 |
Sunday |
星期日 |
おわり