@DocumentedSE @RetentionSE(valueSE=RUNTIMESE) @TargetSE(valueSE={METHODSE,FIELDSE,PARAMETERSE,ANNOTATION_TYPESE}) public @interface DateTimeFormat
スタイルパターン、ISO 日時パターン、カスタムフォーマットパターン文字列によるフォーマットをサポートします。java.util.Date
、java.util.Calendar
、Long
(ミリ秒タイムスタンプ用)、JSR-310 java.time
および Joda-Time 値型に適用できます。
スタイルベースの書式設定の場合、style()
属性をスタイルパターンコードに設定します。コードの最初の文字は日付スタイルで、2 番目の文字は時間スタイルです。ショートスタイルには "S"、ミディアムには "M"、ロングには "L"、フルスタイルには "F" の文字を指定します。スタイル文字 "-" を指定すると、日付または時刻を省略できます。
ISO ベースのフォーマットの場合、iso()
属性を、DateTimeFormat.ISO.DATE
などの DateTimeFormat.ISO
形式に設定します。カスタムフォーマットの場合、pattern()
属性を yyyy/MM/dd hh:mm:ss a
などの DateTime パターンに設定します。
各属性は相互に排他的であるため、アノテーションインスタンスごとに 1 つの属性のみを設定します(書式設定のニーズに最も適した属性)。パターン属性を指定すると、スタイルと ISO 属性の両方よりも優先されます。iso()
属性が指定されている場合、style 属性よりも優先されます。アノテーション属性が指定されていない場合、適用されるデフォルトの形式は、スタイルコード "SS" (短い日付、短い時間)のスタイルベースです。
DateTimeFormatter
SE, DateTimeFormat
public abstract StringSE style
短い日付時間のデフォルトは "SS" です。デフォルトのスタイル以外の一般的なスタイルに従ってフィールドをフォーマットする場合、この属性を設定します。
public abstract DateTimeFormat.ISO iso
可能な ISO パターンは DateTimeFormat.ISO
列挙で定義されています。
デフォルトは DateTimeFormat.ISO.NONE
で、この属性を無視する必要があることを示します。ISO 形式に従ってフィールドをフォーマットする場合は、この属性を設定します。
public abstract StringSE pattern
デフォルトは空の文字列で、カスタムパターン文字列が指定されていないことを示します。スタイルまたは ISO 形式で表されていないカスタム日付時刻パターンに従ってフィールドをフォーマットする場合は、この属性を設定します。
メモ: このパターンは、Joda-Time でもサポートされている元の SimpleDateFormat
SE スタイルに従い、オーバーフローに対する厳密な解析セマンティクス(うるう年以外の 2 月 29 日の値を拒否するなど)を備えています。結果として、"yy" 文字は、DateTimeFormatter
SE 仕様のような「年号」ではなく、従来のスタイルの年を示します(つまり、厳密な解決モードでその DateTimeFormatter
を通過すると、"yy" は "uu" に変わります)。