All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.supercsv.ext.annotation.CsvDateConverter Maven / Gradle / Ivy

Go to download

CSVのJavaライブラリであるSuperCSVに、アノテーション機能を追加したライブラリです。

There is a newer version: 2.3
Show newest version
package org.supercsv.ext.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.TimeZone;

import org.supercsv.cellprocessor.ift.CellProcessor;
import org.supercsv.ext.cellprocessor.constraint.FutureDate;
import org.supercsv.ext.cellprocessor.constraint.PastDate;
import org.supercsv.ext.cellprocessor.joda.FutureJoda;
import org.supercsv.ext.cellprocessor.joda.PastJoda;
import org.supercsv.ext.cellprocessor.time.FutureTemporal;
import org.supercsv.ext.cellprocessor.time.PastTemporal;


/**
 * 日時型の変換規則を定義するアノテーション。
 * 
 * 

対応しているクラスタイプと標準の書式は以下の通りです。

*

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
対応している日時のクラスタイプ
クラスタイプ標準の書式
java.util.Date{@literal yyyy-MM-dd HH:mm:ss}
java.sql.Date{@literal yyyy-MM-dd}
java.sql.Time{@literal HH:mm:ss}
java.sql.Timestamp{@literal yyyy-MM-dd HH:mm:ss.SSS}
java.time.LocalDateTime{@literal uuuu-MM-dd HH:mm:ss}
java.time.LocalDate{@literal uuuu-MM-dd}
java.time.LocalTime{@literal HH:mm:ss}
java.time.ZonedDateTime{@literal uuuu-MM-dd HH:mm:ssxxx'['VV']'}
org.joda.time.LocalDateTime{@literal yyyy-MM-dd HH:mm:ss}
org.joda.time.LocalDate{@literal yyyy-MM-dd}
org.joda.time.LocalTime{@literal HH:mm:ss}
* * @author T.TSUCHIE * */ @Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface CsvDateConverter { /** * 日時の書式を指定します。 *

クラスタイプごとに、指定可能な書式はことなります。

*

{@literal java.util.Date/java.sql.Date/java.sql.Time/java.sql.Timestamp}の場合、{@link java.text.SimpleDateFormat}で解釈可能な書式を指定します。

*

{@literal java.time.LocalDateTime/java.time.LocalDate/java.time.LocalTime/java.time.ZonedDateTime}の場合、{@link java.time.format.DateTimeFormatter}で解釈可能な書式を指定します。

*

{@literal org.joda.time.LocalDateTime/org.joda.time.LocalDate/org.joda.time.LocalTime/}の場合、{@link org.joda.time.format.DateTimeFormat}で解釈可能な書式を指定します。

* @return 指定しない場合は、クラスタイプにより自動的に決まります。 */ String pattern() default ""; /** * 読み込み時に日時の解析を厳密に行うか判定します。 * @return trueの場合、非厳密に判定を行います。 */ boolean lenient() default true; /** * タイムゾーンを指定します。 *

{@link TimeZone#getTimeZone(String)}で解釈可能な値を指定する必要があります。

*

{@literal Asia/Tokyo, GMT, GMT+09:00}などの値を指定します。

*

ただし、オフセットを持たないクラス対タイプ{@literal LocalDateTime, LocalDate, LocalTime}の時は、指定しても意味がありません。

* @return 省略した場合、システム標準の値を使用します。 */ String timezone() default ""; /** * ロケールを指定します。 *

{@literal <言語コード>}、{@literal <言語コード>_<国コード>}、{@literal <言語コード>_<国コード>_<バリアント>}の3つの書式で指定します。

*

例 'ja'、'ja_JP'、'ja_JP_JP'

* @return 省略した場合、システム標準の値を使用します。 */ String locale() default ""; /** * カラムの値が指定した値以上(最小値)の未来日かどうかチェックします。 *

{@literal java.util.Date/java.sql.Date/java.sql.Time/java.sql.Timestamp}の場合、{@link CellProcessor}の{@link FutureDate}が設定されます。

*

{@literal java.time.LocalDateTime/java.time.LocalDate/java.time.LocalTime/java.time.ZonedDateTime}の場合、{@link CellProcessor}の{@link FutureTemporal}が設定されます。

*

{@literal org.joda.time.LocalDateTime/org.joda.time.LocalDate/org.joda.time.LocalTime/}の場合、{@link CellProcessor}の{@link FutureJoda}が設定されます。

* @return 値は、アノテーションで指定した書式に沿った値を指定する必要があります。 */ String min() default ""; /** * カラムの値が指定した値以下(最大値)の過去日かどうかチェックします。 *

{@literal java.util.Date/java.sql.Date/java.sql.Time/java.sql.Timestamp}の場合、{@link CellProcessor}の{@link PastDate}が設定されます。

*

{@literal java.time.LocalDateTime/java.time.LocalDate/java.time.LocalTime/java.time.ZonedDateTime}の場合、{@link CellProcessor}の{@link PastTemporal}が設定されます。

*

{@literal org.joda.time.LocalDateTime/org.joda.time.LocalDate/org.joda.time.LocalTime/}の場合、{@link CellProcessor}の{@link PastJoda}が設定されます。

* @return 値は、アノテーションで指定した書式に沿った値を指定する必要があります。 */ String max() default ""; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy