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

com.github.mygreen.supercsv.annotation.format.CsvDateTimeFormat Maven / Gradle / Ivy

Go to download

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

There is a newer version: 2.3
Show newest version
package com.github.mygreen.supercsv.annotation.format;

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;


/**
 * 日時型の書式を定義するためのアノテーションです。
 * 
 * 

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

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
対応している日時のクラスタイプ
クラスタイプ標準の書式
java.util.Date{@literal yyyy-MM-dd HH:mm:ss}
java.util.Calendar{@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}
org.joda.time.DateTime{@literal yyyy-MM-dd HH:mm:ssZZ}
* * @version 2.0 * @author T.TSUCHIE * */ @Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface CsvDateTimeFormat { /** * 日時の書式を指定します。 *

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

*

{@literal java.util.Date/java.util.Calendar/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 false; /** * タイムゾーンを指定します。 *

{@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 ${key}}の書式の場合、プロパティファイルから取得した値を指定できます。

*

このメッセージは、文字列を日時型にパースする際に失敗したときに適用されるメッセージに使用します。

* *
    *
  • lineNumber : カラムの値に改行が含まれている場合を考慮した実際の行番号です。1から始まります。
  • *
  • rowNumber : CSVの行番号です。1から始まります。
  • *
  • columnNumber : CSVの列番号です。1から始まります。
  • *
  • label : カラムの見出し名です。
  • *
  • validatedValue : 実際のカラムの値です。
  • *
  • pattern : アノテーションの属性{@link #pattern()}の値です。指定されていない場合はデフォルトの値が設定されます。
  • *
* * @return 省略した場合は、適用された{@link CellProcessor}に基づいたメッセージが出力されます。 */ String message() default "{com.github.mygreen.supercsv.annotation.format.CsvDateTimeFormat.message}"; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy