備忘用。
お試し(CodePen)
See the Pen Make DateString by fujisystem (@fujisystem) on CodePen.
解説
# YYYY 西暦4桁
# YY 西暦2桁
# MMM Abbreviations of Months
# MM 月数字2桁(zero-padding)
# M 月数字2桁
# DD 日数字2桁(zero-padding)
# D 日数字2桁
# EEE 曜日
# eee day Of Week
# hh 時数字2桁(zero-padding)
# h 時数字2桁
# mm 分数字2桁(zero-padding)
# m 分数字2桁
# ss 秒数字2桁(zero-padding)
# s 秒数字2桁
総括・ハマりポイント
- 特にないけど、JavaScriptのDateは5/31 ⇒ (前月) ⇒ 4/31(存在しない) ⇒ 5/1(繰り上がり)となるみたい。Javaのapache.CommonのDateUtils#addMonthsと挙動が違う。
というより、Calendarクラスの挙動が繰り上がらない挙動みたい。
例: 最初に1999年8月31日に設定されたGregorianCalendarを考えます。add(Calendar.MONTH, 13)を呼び出すと、カレンダが2000年9月30日に設定されます。8月に13か月を追加すると翌年の9月になるため、Addルール1によってMONTHフィールドが9月に設定されます。DAY_OF_MONTHはGregorianCalendarでは9月の31日にはできないため、Addルール2によってDAY_OF_MONTHがもっとも近い可能な値の30に設定されます。これは小さいフィールドですが、GregorianCalendarで月が変更されるときに変更が予定されているため、DAY_OF_WEEKはルール2によっては調整されません。