@DocumentedSE @RetentionSE(valueSE=RUNTIMESE) @TargetSE(valueSE={METHODSE,FIELDSE,PARAMETERSE,ANNOTATION_TYPESE}) public @interface DateTimeFormat
スタイルパターン、ISO 日時パターン、カスタムフォーマットパターン文字列によるフォーマットをサポートします。Date
SE、Calendar
SE、Long
SE(ミリ秒のタイムスタンプ用)および JSR-310 java.time
値型に適用できます。
スタイルベースのフォーマットの場合は、style()
属性を目的のスタイルパターンコードに設定します。コードの最初の文字は日付スタイルで、2 番目の文字は時間スタイルです。ショートスタイルの場合は "S"、ミディアムスタイルの場合は "M"、ロングスタイルの場合は "L"、フルスタイルの場合は "F" の文字を指定します。スタイル文字 "-" を指定することにより、日付または時刻を省略できます。たとえば、"M-" は、時刻のない日付の中判形式を指定します。
ISO ベースのフォーマットの場合、iso()
属性を DateTimeFormat.ISO.DATE
などの目的の DateTimeFormat.ISO
フォーマットに設定します。
カスタムフォーマットの場合は、pattern()
属性を "yyyy/MM/dd hh:mm:ss a"
などの日時パターンに設定します。
各属性は相互に排他的であるため、アノテーションインスタンスごとに 1 つの属性のみを設定します(フォーマットのニーズに最も便利な属性)。
iso()
属性を指定すると、style 属性よりも優先されます。style()
または pattern()
属性が使用される場合は常に、Date
SE 値をフォーマットするときに JVM のデフォルトのタイムゾーンが使用SEされます。 Date
SE 値をフォーマットするときに iso()
属性が使用される場合は常に、UTC
がタイムゾーンとして使用されます。同じタイムゾーンがフォールバックパターンにも適用されます。タイムゾーンとして UTC
を一貫して使用するために、-Duser.timezone=UTC
を使用して JVM をブートストラップできます。
DateTimeFormatter
SE, DateTimeFormat
修飾子と型 | オプションの要素と説明 |
---|---|
StringSE[] | fallbackPatterns |
DateTimeFormat.ISO | iso フィールドまたはメソッドパラメーターのフォーマットに使用する ISO パターン。 |
StringSE | pattern フィールドまたはメソッドのパラメーターをフォーマットするために使用するカスタムパターン。 |
StringSE | style フィールドまたはメソッドパラメーターのフォーマットに使用するスタイルパターン。 |
public abstract StringSE style
短い日付、短い時間の場合、デフォルトは "SS" です。デフォルトのスタイル以外の一般的なスタイルに従ってフィールドまたはメソッドのパラメーターをフォーマットする場合は、この属性を設定します。
fallbackPatterns()
public abstract DateTimeFormat.ISO iso
サポートされている ISO パターンは、DateTimeFormat.ISO
列挙型で定義されています。
デフォルトは DateTimeFormat.ISO.NONE
で、この属性を無視する必要があることを示します。ISO 形式に従ってフィールドまたはメソッドパラメーターをフォーマットする場合は、この属性を設定します。
fallbackPatterns()
public abstract StringSE pattern
デフォルトは空の文字列で、カスタムパターンの文字列が指定されていないことを示します。スタイルまたは ISO 形式で表されていないカスタム日時パターンに従ってフィールドまたはメソッドのパラメーターをフォーマットする場合は、この属性を設定します。
メモ: このパターンは、Joda-Time でもサポートされている元の SimpleDateFormat
SE スタイルに従い、オーバーフローに対する厳密な解析セマンティクスを備えています(たとえば、うるう年以外の 2 月 29 日の値を拒否します)。結果として、"yy" 文字は、DateTimeFormatter
SE 仕様のような「年」ではなく、従来のスタイルで年を示します(つまり、厳密な解決モードで DateTimeFormatter
を実行すると、"yy" は "uu" に変わります)。
fallbackPatterns()
public abstract StringSE[] fallbackPatterns
pattern()
、iso()
、style()
属性の解析が失敗した場合のフォールバックとして使用するカスタムパターンのセット。例: 解析と出力に ISO 日付形式を使用したいが、さまざまな日付形式のユーザー入力の寛大な解析を許可する場合は、次のように構成できます。
@DateTimeFormat(iso = ISO.DATE, fallbackPatterns = { "M/d/yy", "dd.MM.yyyy" })
フォールバックパターンは、解析にのみ使用されます。値を文字列として出力するためには使用されません。プライマリ pattern()
、iso()
、style()
属性は、常に出力に使用されます。フォールバックパターンに使用されるタイムゾーンの詳細については、クラスレベルのドキュメントを参照してください。
フォールバックパターンは、Joda-Time 値型ではサポートされていません。