jp.littlesoft.util
クラス DataUtil.XWareki

java.lang.Object
  上位を拡張 jp.littlesoft.util.DataUtil.XWareki
すべての実装されたインタフェース:
Serializable
含まれているクラス:
DataUtil

public static class DataUtil.XWareki
extends Object
implements Serializable

和暦変換クラス。

日付型の和暦フォーマット、パースを行うクラスです。

和暦のフォーマットパターンは、以下の9種類用意しています。

 public static final String FORMAT_DATETIME_LONG = "GGyy年MM月dd日 HH時mm分ss秒";
 public static final String FORMAT_DATETIME_SHORT = "gyy/MM/dd HH:mm:ss";
 public static final String FORMAT_DATE_LONG = "GGyy年MM月dd日";
 public static final String FORMAT_DATE_SHORT = "gyy/MM/dd";
 public static final String FORMAT_YEARMONTH_LONG = "GGyy年MM月";
 public static final String FORMAT_YEARMONTH_SHORT = "gyy/MM";
 public static final String FORMAT_YEAR_LONG = "GGyy年";
 public static final String FORMAT_YEAR_LONG2 = "GGy年";
 public static final String FORMAT_YEAR_SHORT = "gyy";
 
これら以外でも、先頭が"gy"または"GGy"で始まるフォーマットであれば、自由に設定できます。
(例: "gy.M.d" "GGyy MM dd")

これらのフォーマットパターン文字列をColumnクラスのFormatPatternプロパティに設定することで、 日付データを和暦で表示および入力することができます。

又、和暦のチェック方法は、このクラスのstaticな変数"checkLevel"に設定します。
次の4つの定数のいずれかをcheckLevelに設定することができます。
 ・WAREKI_CHECK_LEVEL_NO
    - 年月日をチェックしません。
    - 例: 昭和70年もOKです。
 ・WAREKI_CHECK_LEVEL_YEAR
    - 年までチェックします。
    - 例: 昭和64年はOKですが、昭和65年はNGです。
 ・WAREKI_CHECK_LEVEL_MONTH
    - 年月までチェックします
    - 例: 昭和64年1月はOKですが、昭和64年2月はNGです。
 ・WAREKI_CHECK_LEVEL_DAY
    - 年月日までチェックします
    - 例: 昭和64年1月7日はOKですが、昭和64年1月8日はNGです。
 
デフォルト値は、WAREKI_CHECK_LEVEL_YEARです。

変換に必要なリソースがWareki.propertiesファイルに記述されています。
和暦元号が変更になった際は上記リソースファイルの情報を変更します。
※現在WAREKI_GENGO4が"平成"であり、GENGO5,GENGO6が新元号用に予約されています。
WAREKI_GENGO5=****  →  "****"を新しい元号に置き換えます。UNICODEで直接指定します。(例:"平成"→¥u5e73¥u6210)
WAREKI_GENGO5_SHORT=X  →  Xを元号の短縮記号に置き換えます。(例:"平成"→"H")
WAREKI_GENGO5_START_DATE=2999/12/31  →  元号の開始する日付を設定します。(例:"平成"→"1989/01/08")
 【サンプル】
 データベースに格納されている日付型のデータを和暦で表示する。
  rsSeminar.getColumn(COL.KAISAIBI).setFormatPattern(XWareki.FORMAT_DATE_LONG);

 現在の日時を和暦に変換する。
  XWareki wareki = new XWareki();
  String today = wareki.format(new java.util.Date(), XWareki.FORMAT_DATETIME_SHORT);

 和暦の文字列をDateオブジェクトに変換する。
  XWareki wareki = new XWareki();
  java.util.Date date = wareki.parse("H16/09/08", XWareki.FORMAT_DATE_SHORT);
 

作成者:
LittleSoft Corporation
関連項目:
直列化された形式

フィールドの概要
static int checkLevel
          チェックレベルです。
static String FORMAT_DATE_LONG
          年月日のフォーマットです。
static String FORMAT_DATE_SHORT
          年月日のフォーマットです。
static String FORMAT_DATETIME_LONG
          年月日 時分秒のフォーマットです。
static String FORMAT_DATETIME_SHORT
          年月日 時分秒のフォーマットです。
static String FORMAT_YEAR_LONG
          年のフォーマットです。
static String FORMAT_YEAR_LONG2
          年のフォーマットです。
static String FORMAT_YEAR_SHORT
          年のフォーマットです。
static String FORMAT_YEAR_SHORT2
          年のフォーマットです。
static String FORMAT_YEARMONTH_LONG
          年月のフォーマットです。
static String FORMAT_YEARMONTH_SHORT
          年月のフォーマットです。
static int WAREKI_CHECK_LEVEL_DAY
          チェックレベルを表す定数です。
static int WAREKI_CHECK_LEVEL_MONTH
          チェックレベルを表す定数です。
static int WAREKI_CHECK_LEVEL_NO
          チェックレベルを表す定数です。
static int WAREKI_CHECK_LEVEL_YEAR
          チェックレベルを表す定数です。
static String[] WAREKI_GENGO
          "明治","大正","昭和","平成"の元号の配列です。
static String[] WAREKI_GENGO_SHORT
          明治,大正,昭和,平成の省略記号である"M","T","S","H"の配列です。
static String WAREKI_GENGO1
          明治の元号です。
static String WAREKI_GENGO1_SHORT
          明治の省略記号です。
static String WAREKI_GENGO2
          大正の元号です。
static String WAREKI_GENGO2_SHORT
          大正の省略記号です。
static String WAREKI_GENGO3
          昭和の元号です。
static String WAREKI_GENGO3_SHORT
          昭和の省略記号です。
static String WAREKI_GENGO4
          平成の元号です。
static String WAREKI_GENGO4_SHORT
          平成の省略記号です。
static String WAREKI_GENGO5
          平成の次の元号です。
static String WAREKI_GENGO5_SHORT
          平成の次の省略記号です。
static String WAREKI_GENGO6
          平成の次の次の元号です。
static String WAREKI_GENGO6_SHORT
          平成の次の次の省略記号です。
 
コンストラクタの概要
DataUtil.XWareki()
          コンストラクタ。
 
メソッドの概要
 void checkWareki(String gengo, int year, int month, int date)
          和暦が正しい日付かどうかをチェックします。
 String format(Date date, String formatPattern)
          java.util.Dateオブジェクトを和暦フォーマットパターンに従って文字列に変換します。
 int indexOf(long timestamp)
          タイムスタンプ値より元号インデックスを取得します。
 int indexOf(String gengo)
          元号より元号インデックスを取得します。
static boolean isWarekiFormatPattern(String formatPattern)
          フォーマットパターンが和暦のものかどうかを調べます。
 long parse(String gengo, int year, int month, int date)
          元号と年月日よりタイムスタンプ値を取得します。
 long parse(String gengo, int year, int month, int date, int hour, int minute, int second)
          元号と年月日と時分秒よりタイムスタンプ値を取得します。
 long parse(String gengo, int year, int month, int date, int hour, int minute, int second, int millSecond)
          元号と年月日と時分秒よりタイムスタンプ値を取得します。
 Date parse(String value, String formatPattern)
          値と和暦フォーマットパターンからjava.util.Dateオブジェクトを作成します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

FORMAT_DATETIME_LONG

public static final String FORMAT_DATETIME_LONG
年月日 時分秒のフォーマットです。

"GGyy年MM月dd日 HH時mm分ss秒"を表します。

関連項目:
定数フィールド値

FORMAT_DATETIME_SHORT

public static final String FORMAT_DATETIME_SHORT
年月日 時分秒のフォーマットです。

"gyy/MM/dd HH:mm:ss"を表します。

関連項目:
定数フィールド値

FORMAT_DATE_LONG

public static final String FORMAT_DATE_LONG
年月日のフォーマットです。

"GGyy年MM月dd日"を表します。

関連項目:
定数フィールド値

FORMAT_DATE_SHORT

public static final String FORMAT_DATE_SHORT
年月日のフォーマットです。

"gyy/MM/dd"を表します。

関連項目:
定数フィールド値

FORMAT_YEARMONTH_LONG

public static final String FORMAT_YEARMONTH_LONG
年月のフォーマットです。

"GGyy年MM月"を表します。

関連項目:
定数フィールド値

FORMAT_YEARMONTH_SHORT

public static final String FORMAT_YEARMONTH_SHORT
年月のフォーマットです。

"gyy/MM"を表します。

関連項目:
定数フィールド値

FORMAT_YEAR_LONG

public static final String FORMAT_YEAR_LONG
年のフォーマットです。

"GGyy年"を表します。

関連項目:
定数フィールド値

FORMAT_YEAR_LONG2

public static final String FORMAT_YEAR_LONG2
年のフォーマットです。

"GGy年"を表します。

関連項目:
定数フィールド値

FORMAT_YEAR_SHORT

public static final String FORMAT_YEAR_SHORT
年のフォーマットです。

"gyy"を表します。

関連項目:
定数フィールド値

FORMAT_YEAR_SHORT2

public static final String FORMAT_YEAR_SHORT2
年のフォーマットです。

"GGyy"を表します。

関連項目:
定数フィールド値

WAREKI_GENGO1

public static final String WAREKI_GENGO1
明治の元号です。

デフォルトでは"明治"が定義されていますが、変更可能です。


WAREKI_GENGO2

public static final String WAREKI_GENGO2
大正の元号です。

デフォルトでは"大正"が定義されていますが、変更可能です。


WAREKI_GENGO3

public static final String WAREKI_GENGO3
昭和の元号です。

デフォルトでは"昭和"が定義されていますが、変更可能です。


WAREKI_GENGO4

public static final String WAREKI_GENGO4
平成の元号です。

デフォルトでは"平成"が定義されていますが、変更可能です。


WAREKI_GENGO5

public static final String WAREKI_GENGO5
平成の次の元号です。

デフォルトでは未定義です。


WAREKI_GENGO6

public static final String WAREKI_GENGO6
平成の次の次の元号です。

デフォルトでは未定義です。


WAREKI_GENGO

public static final String[] WAREKI_GENGO
"明治","大正","昭和","平成"の元号の配列です。

平成の次,平成の次の次までリザーブされています。


WAREKI_GENGO1_SHORT

public static final String WAREKI_GENGO1_SHORT
明治の省略記号です。

デフォルトでは"M"が定義されていますが、変更可能です。


WAREKI_GENGO2_SHORT

public static final String WAREKI_GENGO2_SHORT
大正の省略記号です。

デフォルトでは"T"が定義されていますが、変更可能です。


WAREKI_GENGO3_SHORT

public static final String WAREKI_GENGO3_SHORT
昭和の省略記号です。

デフォルトでは"S"が定義されていますが、変更可能です。


WAREKI_GENGO4_SHORT

public static final String WAREKI_GENGO4_SHORT
平成の省略記号です。

デフォルトでは"H"が定義されていますが、変更可能です。


WAREKI_GENGO5_SHORT

public static final String WAREKI_GENGO5_SHORT
平成の次の省略記号です。

デフォルトでは未定義です。


WAREKI_GENGO6_SHORT

public static final String WAREKI_GENGO6_SHORT
平成の次の次の省略記号です。

デフォルトでは未定義です。


WAREKI_GENGO_SHORT

public static final String[] WAREKI_GENGO_SHORT
明治,大正,昭和,平成の省略記号である"M","T","S","H"の配列です。

平成の次,平成の次の次までリザーブされています。


WAREKI_CHECK_LEVEL_NO

public static final int WAREKI_CHECK_LEVEL_NO
チェックレベルを表す定数です。

年月日をチェックしません。

関連項目:
定数フィールド値

WAREKI_CHECK_LEVEL_YEAR

public static final int WAREKI_CHECK_LEVEL_YEAR
チェックレベルを表す定数です。

年までチェックします。

関連項目:
定数フィールド値

WAREKI_CHECK_LEVEL_MONTH

public static final int WAREKI_CHECK_LEVEL_MONTH
チェックレベルを表す定数です。

年月までチェックします。

関連項目:
定数フィールド値

WAREKI_CHECK_LEVEL_DAY

public static final int WAREKI_CHECK_LEVEL_DAY
チェックレベルを表す定数です。

年月日までチェックします。

関連項目:
定数フィールド値

checkLevel

public static int checkLevel
チェックレベルです。

次の4つのいずれかを設定してください。
・WAREKI_CHECK_LEVEL_NO
・WAREKI_CHECK_LEVEL_YEAR (ディフォルト)
・WAREKI_CHECK_LEVEL_MONTH
・WAREKI_CHECK_LEVEL_DAY

コンストラクタの詳細

DataUtil.XWareki

public DataUtil.XWareki()
コンストラクタ。

メソッドの詳細

isWarekiFormatPattern

public static boolean isWarekiFormatPattern(String formatPattern)
フォーマットパターンが和暦のものかどうかを調べます。

当クラスの"FORMAT_"で始まる定数のフォーマットパターンと一致するかを調べます。

パラメータ:
formatPattern - フォーマットパターン
戻り値:
True:和暦、False:和暦ではない

parse

public Date parse(String value,
                  String formatPattern)
           throws Exception
値と和暦フォーマットパターンからjava.util.Dateオブジェクトを作成します。

パラメータ:
value - 値
formatPattern - 和暦フォーマットパターン
戻り値:
java.util.Dateオブジェクト
例外:
Exception - 和暦フォーマットパターンでは無い場合

parse

public long parse(String gengo,
                  int year,
                  int month,
                  int date)
           throws Exception
元号と年月日よりタイムスタンプ値を取得します。

パラメータ:
gengo - 元号
year - 年
month - 月
date - 日
戻り値:
タイムスタンプ値
例外:
Exception - 不正な日付の場合

parse

public long parse(String gengo,
                  int year,
                  int month,
                  int date,
                  int hour,
                  int minute,
                  int second)
           throws Exception
元号と年月日と時分秒よりタイムスタンプ値を取得します。

パラメータ:
gengo - 元号
year - 年
month - 月
date - 日
hour - 時
minute - 分
second - 秒
戻り値:
タイムスタンプ値
例外:
Exception - 不正な日付の場合

parse

public long parse(String gengo,
                  int year,
                  int month,
                  int date,
                  int hour,
                  int minute,
                  int second,
                  int millSecond)
           throws Exception
元号と年月日と時分秒よりタイムスタンプ値を取得します。

パラメータ:
gengo - 元号
year - 年
month - 月
date - 日
hour - 時
minute - 分
second - 秒
millSecond - ミリ秒
戻り値:
タイムスタンプ値
例外:
Exception - 不正な日付の場合

format

public String format(Date date,
                     String formatPattern)
              throws DataException
java.util.Dateオブジェクトを和暦フォーマットパターンに従って文字列に変換します。

パラメータ:
date - java.util.Dateオブジェクト
formatPattern - 和暦フォーマットパターン
戻り値:
変換した文字列
例外:
Exception - フォーマットパターンが和暦ではない場合など
DataException

indexOf

public int indexOf(String gengo)
元号より元号インデックスを取得します。

不正な場合は-1を返します。

パラメータ:
gengo - 元号
戻り値:
元号インデックス

indexOf

public int indexOf(long timestamp)
タイムスタンプ値より元号インデックスを取得します。

不正な場合は-1を返します。

パラメータ:
timestamp - タイムスタンプ値(単位:ミリ秒)
戻り値:
元号インデックス

checkWareki

public void checkWareki(String gengo,
                        int year,
                        int month,
                        int date)
                 throws DataException
和暦が正しい日付かどうかをチェックします。

パラメータ:
gengo - 元号
year - 年
month - 月
date - 日
例外:
Exception - 不正な日付の場合
DataException


Copyright (C) 2006-2012 LittleSoft Corporation. All Rights Reserved.