@Target(value={FIELD,ANNOTATION_TYPE}) @Retention(value=RUNTIME) @Documented public @interface CsvDateTimeFormat
アノテーションを付与しないときや属性pattern()
を指定しないときは、クラスタイプごとに決まった標準の書式が適用されます。
対応しているクラスタイプと標準の書式は以下の通りです。
クラスタイプ | 標準の書式 |
---|---|
java.util.Date | yyyy-MM-dd HH:mm:ss |
java.util.Calendar | yyyy-MM-dd HH:mm:ss |
java.sql.Date | yyyy-MM-dd |
java.sql.Time | HH:mm:ss |
java.sql.Timestamp | yyyy-MM-dd HH:mm:ss.SSS |
java.time.LocalDateTime | uuuu-MM-dd HH:mm:ss |
java.time.LocalDate | uuuu-MM-dd |
java.time.LocalTime | HH:mm:ss |
java.time.ZonedDateTime | uuuu-MM-dd HH:mm:ssxxx'['VV']' |
java.time.OffsetDateTime | uuuu-MM-dd HH:mm:ssxxx |
java.time.OffsetTime | HH:mm:ssxxx |
java.time.Year | uuuu |
java.time.YearMonth | uuuu-MM |
java.time.MonthDay | MM-dd |
org.joda.time.LocalDateTime | yyyy-MM-dd HH:mm:ss |
org.joda.time.LocalDate | yyyy-MM-dd |
org.joda.time.LocalTime | HH:mm:ss |
org.joda.time.DateTime | yyyy-MM-dd HH:mm:ssZZ |
org.joda.time.YearMonth | yyyy-MM |
org.joda.time.MonthDay | MM-dd |
pattern()
で、書式を指定します。
locale()
でロケールを指定します。
@CsvBean
public class SampleCsv {
// 和暦を扱う場合
@CsvColumn(number=1)
@CsvDateTimeFormat(pattern="GGGGyy年MM月dd日", locale="ja_JP_JP")
private Date japaneseDate;
@CsvColumn(number=2, label="更新日時")
@CsvDateTimeFormat(pattern="uuuu/MM/dd HH:mm:ss")
private LocalDateTime updateTime;
// getter/setterは省略
}
public abstract String pattern
クラスタイプごとに、指定可能な書式は異なります。
java.util.Date/java.util.Calendar/java.sql.Date/java.sql.Time/java.sql.Timestampの場合、
SimpleDateFormat
で解釈可能な書式を指定します。
java.time.LocalDateTime/java.time.LocalDate/java.time.LocalTime/java.time.ZonedDateTime/java.time.OffsetDateTime/java.time.OffsetTime/java.time.Year/java.time,YearMonth/java.time/MonthDayの場合、
DateTimeFormatter
で解釈可能な書式を指定します。
org.joda.time.LocalDateTime/org.joda.time.LocalDate/org.joda.time.LocalTime/org.joda.time.YearMonth/org.joda.time.MonthDayの場合、
DateTimeFormat
で解釈可能な書式を指定します。
public abstract boolean lenient
曖昧に解析する場合、例えば、2016-02-31 と存在しない日を解析すると、2016-03-02 と自動的に補正が行われます。
public abstract String timezone
TimeZone.getTimeZone(String)
で解釈可能な値を指定する必要があります。
Asia/Tokyo, GMT, GMT+09:00などの値を指定します。
ただし、オフセットを持たないクラスタイプLocalDateTime, LocalDate, LocalTimeの時は、指定しても意味がありません。
public abstract String locale
<言語コード>、<言語コード>_<国コード>、<言語コード>_<国コード>_<バリアント>の3つの何れかで書式を指定します。
例 'ja'、'ja_JP'、'ja_JP_JP'
public abstract String message
${key}の書式の場合、プロパティファイルから取得した値を指定できます。
このメッセージは、文字列を日時型にパースする際に失敗したときに適用されるメッセージに使用します。
pattern()
の値です。指定されていない場合はデフォルトの値が設定されます。CellProcessor
に基づいたメッセージが出力されます。Copyright © 2022 mygreen. All rights reserved.