概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.8.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.opengion.fukurou.util
クラス HybsDateUtil

    java.lang.Object
      org.opengion.fukurou.util.HybsDateUtil

    public final class HybsDateUtil

extends Object

HybsDateUtil.java は、共通的に使用される Date,Calender関連メソッドを集約した、staticメソッドのみで構成されるクラスです。

変更履歴:

  5.5.7.2 (2012/10/09) 新規作成

機能分類
  ユーティリティ
バージョン
  5.5
作成者
  Kazuhiko Hasegawa
導入されたバージョン:
  JDK7.0,

メソッドの概要
`static void` | `calendarCalc(Calendar now, String prmB)` 開始前設定値、または 終了後設定値の文字列から、オプション文字列を合成します。
`static void` | `calendarCalc(Calendar now, String prmB, int intC)` 開始前設定値、または 終了後設定値の文字列から、オプション文字列を合成します。
`static Calendar` | `getCalendar(String value)` 指定の引数の日付け文字列より、カレンダオブジェクトを作成します。
`static String` | `getDate()` 現在日付、時刻を指定のフォーマットで文字列に変換して返します。
`static String` | `getDate(long time, String form)` 指定時刻を指定のフォーマットで文字列に変換して返します。
`static String` | `getDate(String form)` 現在時刻を指定のフォーマットで文字列に変換して返します。
`static String` | `getDateFormat(String key, String prmA, String prmB)` 日付関係の情報を簡易的に処理します。
`static String` | `getDateFormat(String key, String prmA, String prmB, int intC)` 日付関係の情報を簡易的に処理します。
`static String` | `getDatePlus(String baseDate, int plus)` 指定の引数の日付け文字列(yyyyMMdd)より、日付を加算して返します。
`static String` | `getDatePlus(String baseDate, String plus, int defTani, String format)` 指定の引数の日付け文字列(yyyyMMdd、yyyyMMddHHmmss)に、日付を加算して返します。
`static String` | `getMonthPlus(String baseDate, int plus)` 現在の月に、指定の月数をプラスした日付文字列を返します。
`static boolean` | `isStrict(String value)` 日付文字列の厳密な整合性チェックを行います。
`static String` | `parseDate(String value, int size)` 日付文字列の桁数の整合性を取ります。
`static String` | `parseDate(String value, int minSize, int maxSize)` 日付文字列の桁数の整合性を取ります。
`static String` | `parseNumber(String value)` 指定の文字列から、以下の文字を削除した文字列を返します。
`static String` | `parseTimestamp(String value)` 指定の文字列から、yyyy-mm-dd hh:mm:ss[.f...]

クラス java.lang.Object から継承されたメソッド
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

メソッドの詳細

### getDate

    public static final String getDate()

  現在日付、時刻を指定のフォーマットで文字列に変換して返します。 出力フォーマットは、"yyyy/MM/dd HH:mm:ss" 固定です。

  戻り値:
    現在日付、時刻 ( 例 2012/09/05 18:10:24 )
  変更履歴:

    5.5.7.2 (2012/10/09) 新規作成

### getDate

    public static final String getDate(String form)

  現在時刻を指定のフォーマットで文字列に変換して返します。 フォーマットの指定方法は、java.text.SimpleDateFormat の指定方法と同一です。 変換時のロケーションは、Locale.JAPAN です。 現在時刻は、new Date() で求めます。

  パラメータ:
    `form` - フォーム文字列 ( 例 "yyyy/MM/dd HH:mm:ss.SSS" )
  戻り値:
    現在日付、時刻
  関連項目:
    `SimpleDateFormat`
  変更履歴:

    5.5.7.2 (2012/10/09) 新規作成

### getDate

    public static final String getDate(long time,
                                       String form)

  指定時刻を指定のフォーマットで文字列に変換して返します。 フォーマットの指定方法は、java.text.SimpleDateFormat の指定方法と同一です。 変換時のロケーションは、Locale.JAPAN です。 指定時刻は、new Date( time ) で求めます。

  パラメータ:
    `time` - 指定のカレントタイムのロング値
    `form` - フォーム文字列 ( 例 "yyyy/MM/dd HH:mm:ss.SSS" )
  戻り値:
    現在日付、時刻( 例 2001/04/17 15:48:22 )
  変更履歴:

    5.5.7.2 (2012/10/09) 新規作成

### parseNumber

    public static final String parseNumber(String value)

  指定の文字列から、以下の文字を削除した文字列を返します。 '/' , '-' , ' ' , ':' の数字以外の文字を含むフォーマットされた 日付文字列を、日付データだけに変換する場合に利用することを想定しています。 よって、マイナス記号や、小数点、コンマなども削除されます。 このメソッドでは、日付としての整合性や桁チェックは行いません。 引数が、null の場合は、ゼロ文字列に、変換します。

  パラメータ:
    `value` - 任意の文字列（例：2001/04/17 15:48:22）
  戻り値:
    数字だけで構成される文字列（例：20010417154822）(nullはゼロ文字列を返します)
  変更履歴:

    5.5.7.2 (2012/10/09) 新規作成
    5.5.8.3 (2012/11/17) 数字のみ返す仕様だったが、対象以外の文字入力はそのまま返すよう変更

### parseTimestamp

    public static final String parseTimestamp(String value)

  指定の文字列から、yyyy-mm-dd hh:mm:ss[.f...] 形式の文字列を作成します。 これは、java.sql.Timestamp オブジェクトを文字列から作成するに当たり、 Timestamp の文字列形式にしなければならないためです。 桁数は、８桁 または、１４桁以外の場合は、変換エラーとします。

  パラメータ:
    `value` - 任意の文字列（例：20010417 or 20010417154822）
  戻り値:
    Timestampの文字列形式（例：2001-04-17 00:00:00 or 2001-04-17 15:48:22）
  変更履歴:

    5.5.8.5 (2012/11/27) 新規作成

### parseDate

    public static final String parseDate(String value,
                                         int size)

  日付文字列の桁数の整合性を取ります。 これは、内部で、parseNumber(String) 処理により、不要なフォーマット記号を削除します。 ここでは、基本的には、６文字（yyyyMM）、８文字（yyyyMMdd）、１４文字（yyyyMMddHHmmss） の日付文字列を作成することを想定していますが、指定の桁数以外は、エラーになります。 引数が、null ⇒ 桁数に無関係に、空文字列を返す。 引数の桁数が一致 ⇒ その値を返す。 引数の桁数が不一致 ⇒ エラー ただし、引数の最大長は、１４ケタに制限しています。 このメソッドでは、日付として成立しているかどうか（99999999など）は判定していません。

  パラメータ:
    `value` - 任意の日付け文字列
    `size` - 変換したい桁数
  戻り値:
    数字だけで構成される文字列（例：20010417154822）(nullはゼロ文字列を返します)
  変更履歴:

    5.6.6.0 (2013/07/05) メソッドの内容を移す。

### parseDate

    public static final String parseDate(String value,
                                         int minSize,
                                         int maxSize)

  日付文字列の桁数の整合性を取ります。 これは、内部で、parseNumber(String) 処理により、不要なフォーマット記号を削除します。 ここでは、基本的には、６文字（yyyyMM）、８文字（yyyyMMdd）、１４文字（yyyyMMddHHmmss） の日付文字列を作成することを想定していますが、それ以外の桁数でも下記のルールに従って 処理されます。 引数が、null ⇒ 桁数に無関係に、空文字列を返す。 引数の桁数が範囲内 ⇒ 以下の処理を実行する。 引数の桁数を同じ ⇒ そのまま返す。 引数の桁数より大きい ⇒ 余をカットして、引数の最大長にそろえる。 引数の桁数に足りない ⇒ "20000101000000" の文字列の部分文字列を結合させて、引数の最大長にそろえる。 ただし、引数の最大長は、１４ケタに制限しています。 このメソッドでは、日付として成立しているかどうか（99999999など）は判定していません。

  パラメータ:
    `value` - 任意の日付け文字列
    `minSize` - 変換したい桁数の最小値
    `maxSize` - 変換したい桁数の最大値
  戻り値:
    数字だけで構成される文字列（例：20010417154822）(nullはゼロ文字列を返します)
  変更履歴:

    5.5.7.2 (2012/10/09) 新規作成
    5.6.1.1 (2013/02/08) 桁数チェック導入。６桁以下だとエラーにする。
    5.6.6.0 (2013/07/05) 桁数チェックの最小-最大指定

### isStrict

    public static final boolean isStrict(String value)

  日付文字列の厳密な整合性チェックを行います。 ここで指定できるのは、８文字（yyyyMMdd）、１４文字（yyyyMMddHHmmss）のどちらかの 数字だけの日付文字列であり、それが、日付として正しいかどうかのチェックを行います。 正しければ、true を、間違っていれば、false を返します。 ここでは、20120230（２月３０日）などの日付や、20120101235960 なども false になります。 引数が、null および、空文字列の場合も、false を返しますので、避けたい場合は、事前に 判定しておいてください。 内部処理としては、DateFormat で、setLenient( false ) を設定することで、 日付/時刻解析を厳密に解析するにして、ParseException が発生しないかどうか判定しています。

  パラメータ:
    `value` - 数字だけで構成される日付け文字列
  戻り値:
    true:日付として正しい場合/false:日付として間違っている場合
  変更履歴:

    5.5.7.2 (2012/10/09) 新規作成

### getDateFormat

    public static final String getDateFormat(String key,
                                             String prmA,
                                             String prmB)

  日付関係の情報を簡易的に処理します。 CC引数の加減算パラメータは、0 です。

  パラメータ:
    `key` - フォーマットの予約語
    `prmA` - 基準となる日付(nullの場合は、処理時刻)
    `prmB` - 処理コマンド
  戻り値:
    メッセージ情報
  関連項目:
    `getDateFormat( String , String ,String , int )`
  変更履歴:

    5.7.4.1 (2014/03/14) CC 引数を拡張するため、旧メソッドを再現しておきます。

### getDateFormat

    public static final String getDateFormat(String key,
                                             String prmA,
                                             String prmB,
                                             int intC)

  日付関係の情報を簡易的に処理します。 第一引数 "XXXX" は、日付処理を行うフォーマットの予約語になっています。 ・YMD　　：８文字の4-2-2年月日データ(yyyyMMdd)を扱います。 ・Y2MD　 ：６文字の2-2-2年月日データ(yyMMdd)を扱います。 ・YM　　 ：６文字の4-2年月データ(yyyyMM)を扱います。 ・HMS　　：６文字の2-2-2時分秒データ(HHmmss)を扱います。 ・YMDHMS ：１４文字の4-2-2-2-2-2年月日時分秒データ(yyyyMMddHHmmss)を扱います。 ・EEE　　：曜日をデフォルトロケールで表示します。 F付きは、フォーマットされた日付を返します。 ・YMDF　 ：１０文字の日付表現(yyyy/MM/dd)を扱います。 ・Y2MDF　：８文字の日付表現(yy/MM/dd)を扱います。 ・YMF　　：７文字の日付表現(yyyy/MM)を扱います。 ・HMSF　 ：８文字の時刻表現(HH:mm:ss)を扱います。 ・YMDHMSF：１９文字の日付表現(yyyy/MM/dd HH:mm:ss)を扱います。 ・MDF　　：５文字の月日表現(MM/dd)を扱います。 ・MDEF　 ：５文字＋曜日の月日表現(MM/dd(EEE))を扱います。 ・MD2F　 ：和暦の月日表現(MM月dd日)を扱います。(5.5.5.2 追加) ・GYMDF　：和暦の年月日表現(GGGGyyyy年MM月dd日)を扱います。 ・G2YMDF ：和暦の日付表現(Gyyyy/MM/dd)を扱います。 ・GYMF　 ：和暦の年月表現(GGGGyyyy年MM月)を扱います。 ・GYF　　：和暦の年表現(GGGGyyyy)を扱います。 なお、上記以外のフォーマットを指定する場合は、XXXX部分に直接記述できます。(5.5.5.2 追加) ただし、基本的には、自由フォーマットは、エラーチェックがない為、使わないでください。 第二引数 AA は、基準となる日付を、yyyyMMdd形式で指定します。nullの場合は、現在時刻を使用します。 指定できる日付は、yyyyMMdd形式を推奨しますが、'/' , '-' , ' ' , ':' を削除して使います。 ６桁の場合は、yyyyMM + 01 とし、８ケタの場合は、yyyyMMdd とし、14ケタ以上の場合は、前半１４文字を yyyyMMddHHmmss として処理します。それ以外の桁数の場合は、エラーになります。 たとえば、"2012/09/05 16:52:36" のようなフォーマットデータの場合、'/' , '-' , ' ' , ':' を削除して "20120905165236" に変換後、日付オブジェクトに変換されます。 第三引数 BB は、日付についての加減算処理を行うためのコマンドを指定します。 nullの場合は、なにも加減算処理を行いません。 ・SD ：当月の最初の日付にセットします。(当月１日)。CC引数は、-N:N月前、0:当月(=SD)、N:N月後、-1:BSD と同じ、1:ASD と同じ ・ED ：当月の最後の日付にセットします。(当月月末)。CC引数は、-N:N月前、0:当月(=ED)、N:N月後、-1:BED と同じ、1:AED と同じ ・SW ：日付処理の週初め(月曜日)にセットします。日付は当日より前に移動します。CC引数は、-N:N週前、0:今週(=SW)、N:N週後 ・EW ：日付処理の週末(日曜日)にセットします。日付は当日より後ろに移動します。CC引数は、-N:N週前、0:今週(=EW)、N:N週後 ・H1 ～ HXXX ：時を指定の分だけ進めます。H1なら１時間後、H24 なら２４時間後(5.5.5.6 (2012/08/31) 追加) ・D1 ～ DXXX ：日を指定の分だけ進めます。D1なら翌日、D200 なら200日後 ・M1 ～ MXXX ：月を指定の分だけ進めます。M1なら翌月、M6 なら半年後 ・BSD ：(有閑)先月の最初の日付にセットします。(先月１日)(5.5.5.2 追加)。SD -1 と同等 ・BED ：(有閑)先月の最後の日付にセットします。(先月月末)(5.5.5.2 追加)。ED -1 と同等 ・ASD ：(有閑)翌月の最初の日付にセットします。(翌月１日)(5.5.5.2 追加)。SD 1 と同等 ・AED ：(有閑)翌月の最後の日付にセットします。(翌月月末)(5.5.5.2 追加)。ED 1 と同等 CC 引数は、特別な処理で、BB 引数に対して、加算、減算のための数字を指定できます。(5.7.4.1 (2014/03/14) 追加) 従来は、BB 引数が、"H" , "D" , "M" の １文字パラメータの場合のみ利用可能でした。

  パラメータ:
    `key` - フォーマットの予約語
    `prmA` - 基準となる日付(nullの場合は、処理時刻)
    `prmB` - 処理コマンド
    `intC` - 加減算処理を行うための数字。0 は、BB引数の従来計算のまま。
  戻り値:
    メッセージ情報
  関連項目:
    `getDateFormat( String , String ,String )`, `AA 引数 からカレンダオブジェクトを作成します。`, `BB 引数、CC 引数を元に、日付計算します。`
  変更履歴:

    5.5.7.2 (2012/10/09) 新規作成
    5.6.1.1 (2013/02/08) prmB処理を、calendarCalc メソッドへ移動
    5.7.4.1 (2014/03/14) CC 引数を拡張

### calendarCalc

    public static final void calendarCalc(Calendar now,
                                          String prmB)

  開始前設定値、または 終了後設定値の文字列から、オプション文字列を合成します。 基準となる日付に計算した結果を反映させます。 CC引数の加減算パラメータは、0 です。

  パラメータ:
    `now` - 基準となる日付（Calendarオブジェクト）
    `prmB` - 処理コマンド
  変更履歴:

    5.7.4.1 (2014/03/14) CC 引数を拡張するため、旧メソッドを再現しておきます。

### calendarCalc

    public static final void calendarCalc(Calendar now,
                                          String prmB,
                                          int intC)

  開始前設定値、または 終了後設定値の文字列から、オプション文字列を合成します。 基準となる日付に計算した結果を反映させます。 prmB は、日付についての加減算処理を行うためのコマンドを指定します。 ・SD ：当月の最初の日付にセットします。(当月１日)。CC引数は、-N:N月前、0:当月(=SD)、N:N月後、-1:BSD と同じ、1:ASD と同じ ・ED ：当月の最後の日付にセットします。(当月月末)。CC引数は、-N:N月前、0:当月(=ED)、N:N月後、-1:BED と同じ、1:AED と同じ ・SW ：日付処理の週初め(月曜日)にセットします。日付は当日より前に移動します。CC引数は、-N:N週前、0:今週(=SW)、N:N週後 ・EW ：日付処理の週末(日曜日)にセットします。日付は当日より後ろに移動します。CC引数は、-N:N週前、0:今週(=EW)、N:N週後 ・H1 ～ HXXX ：時を指定の分だけ進めます。H1なら１時間後、H24 なら２４時間後(5.5.5.6 (2012/08/31) 追加) ・D1 ～ DXXX ：日を指定の分だけ進めます。D1なら翌日、D200 なら200日後 ・M1 ～ MXXX ：月を指定の分だけ進めます。M1なら翌月、M6 なら半年後 ・BSD ：先月の最初の日付にセットします。(先月１日)(5.5.5.2 追加)。SD-1 と同等 ・BED ：先月の最後の日付にセットします。(先月月末)(5.5.5.2 追加)。ED-1 と同等 ・ASD ：翌月の最初の日付にセットします。(翌月１日)(5.5.5.2 追加)。SD1 と同等 ・AED ：翌月の最後の日付にセットします。(翌月月末)(5.5.5.2 追加)。ED1 と同等 ・数字：日を指定の分だけ進めます。D1 ～ DXXX の簡略系 CC 引数は、特別な処理で、BB 引数に対して、加算、減算のための数字を指定できます。(5.7.4.1 (2014/03/14) 追加) HXXX,DXXX,MXXX 形式に、CC 引数を付けた場合は、XXX にさらに加算されます。 prmB に、数字を使用した場合、(コマンドでない場合)にも、CC 引数は、加算されます。

  パラメータ:
    `now` - 基準となる日付（Calendarオブジェクト）
    `prmB` - 処理コマンド
    `intC` - 加減算処理を行うための数字。0 は、BB引数の従来計算のまま。
  変更履歴:

    5.6.1.1 (2013/02/08) getDateFormat( String ,String ,String ) から分離。
    5.7.4.1 (2014/03/14) H1 ～ HXXX ：時を指定の分だけ進める処理が実装されていなかった。
    5.7.4.1 (2014/03/14) CC 引数追加

### getCalendar

    public static final Calendar getCalendar(String value)

  指定の引数の日付け文字列より、カレンダオブジェクトを作成します。 引数は、数字以外の文字を削除した状態に変換後、処理に回します。 不要な文字を削除した状態で、８文字以上になるように指定してください。 例外的に、６文字の場合は、yyyyMM01 とみなして、"01" 文字列を付与します。 引数に null を指定すると、現在時刻のカレンダを返します。 それ以外のデータで、８ケタ以下の場合は、RuntimeException が発生します。 ８ケタ以上１４ケタ未満の場合は、８ケタ分を、年月日に分離したカレンダ オブジェクトを作成します。１４ケタ以上で初めて、時分秒を含むカレンダ を作成します。

  パラメータ:
    `value` - 日付け文字列
  戻り値:
    カレンダオブジェクト(引数がnullの場合は、現在時刻)
  変更履歴:

    5.5.7.2 (2012/10/09) 新規作成
    5.5.8.2 (2012/11/09) value の判定に、null と ゼロ文字列を判定する。

### getDatePlus

    public static final String getDatePlus(String baseDate,
                                           int plus)

  指定の引数の日付け文字列(yyyyMMdd)より、日付を加算して返します。 マイナスを与えると、減算します。 日付以上の精度の文字列を渡しても、日付のみの計算となります。 結果は、引数の日付フォーマットとは全く別で、yyyyMMdd の８文字形式になります。 引数に null を渡すと、実行時の日付をベースとして処理します。

  パラメータ:
    `baseDate` - 日付け文字列(yyyyMMdd)
    `plus` - 加算する日数(過去にするにはマイナス値を指定する)
  戻り値:
    結果の日付(yyyyMMdd)
  変更履歴:

    5.5.7.2 (2012/10/09) 新規作成

### getMonthPlus

    public static final String getMonthPlus(String baseDate,
                                            int plus)

  現在の月に、指定の月数をプラスした日付文字列を返します。 日付文字列のフォーマットは、"yyyyMM" です。 指定する月数にマイナスを指定すると、減算できます。

  パラメータ:
    `baseDate` - 日付け文字列(yyyyMM)
    `plus` - 加算する月数(過去にするにはマイナス値を指定する)
  戻り値:
    指定の月数をプラスした日付文字列(yyyyMM)
  変更履歴:

    5.5.7.2 (2012/10/09) 新規作成

### getDatePlus

    public static final String getDatePlus(String baseDate,
                                           String plus,
                                           int defTani,
                                           String format)

  指定の引数の日付け文字列(yyyyMMdd、yyyyMMddHHmmss)に、日付を加算して返します。 マイナスを与えると、減算します。 指定する日付には、単位を付与することが可能です。 単位は、yyyyMMddHHmmss 形式の１文字を指定します。大文字、小文字も識別します。 plus="5M" とすれば、５か月、plus="5d" とすれば、５日 追加します。 plus に単位を付けない場合は、tani に指定の単位を使います。 plus そのものが、null か、isEmpty の場合は、加算は、1 になります。 baseDate 文字列を日付文字列に変換後、Calendar で計算し、結果を、format 形式に変換します。 引数に null を渡すと、実行時の日付をベースとして処理します。

  パラメータ:
    `baseDate` - 日付け文字列(yyyyMMdd、yyyyMMddHHmmss 形式の日付文字列)
    `plus` - 加算する日数(日付単位を含む。単位は、y,M,d,H,m,s の文字で、大文字小文字の区別があります)
    `defTani` - 日付単位が未指定の場合の初期単位('y','M','d','H','m','s' のどれか)
    `format` - 返す日付文字列のフォーマット(yyyyMMdd、yyyyMMddHHmmss)
  戻り値:
    結果の日付(yyyyMMdd)
  例外:
    `NumberFormatException` - 加算する日数の単位が('y','M','d','H','m','s')以外の場合。
  変更履歴:

    5.6.1.0 (2013/02/01) 新規作成

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.8.3.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.