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

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

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

    public final class HybsDateUtil

extends java.lang.Object

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

変更履歴:

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

バージョン
  5.5
作成者
  Kazuhiko Hasegawa
導入されたバージョン:
  JDK7.0,

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

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

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

    5.5.7.2 (2012/10/09) 新規作成
    5.6.1.1 (2013/02/08) 桁数チェック導入。６桁以下だとエラーにする。

### isStrict

    public static final boolean isStrict(java.lang.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 java.lang.String getDateFormat(java.lang.String key,
                                                       java.lang.String prmA,
                                                       java.lang.String prmB)

  日付関係の情報を簡易的に処理します。 第一引数 "XXXX" は、日付処理を行うフォーマットの予約語になっています。 ・YMD　　：８文字の日付データ(yyyyMMdd)を扱います。 ・Y2MD　 ：６文字の日付データ(yyMMdd)を扱います。 ・YM　　 ：６文字の日付データ(yyyyMM)を扱います。 ・MD　　 ：４文字の日付データ(MMdd)を扱います。(5.5.5.2 追加) ・HMS　　：６文字の時刻データ(HHmmss)を扱います。 ・YMDHMS ：１４文字の日付データ(yyyyMMddHHmmss)を扱います。 ・EEE　　：曜日をデフォルトロケール(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形式を推奨しますが、８文字でない場合は、'-' や '/' を削除の上、 前半８文字のみ使用します。たとえば、"2012/09/05 16:52:36" のようなフォーマットデータが渡された 場合、"20120905 16:52:36" に変換後、前半８文字の "20120905" が使われます。 よって、フォーマットされている場合でも処理をおこないますが、月、日は、頭ゼロ埋めの２文字で 渡してください。 第三引数 BB は、日付についての加減算処理を行うためのコマンドを指定します。 nullの場合は、なにも加減算処理を行いません。 ・SD ：当月の最初の日付にセットします。(当月１日) ・ED ：当月の最後の日付にセットします。(当月月末) ・SW ：日付処理の週初め(月曜日)にセットします。日付は当日より前に移動します。 ・EW ：日付処理の週末(日曜日)にセットします。日付は当日より後ろに移動します。 ・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 追加) ・BED ：先月の最後の日付にセットします。(先月月末)(5.5.5.2 追加) ・ASD ：翌月の最初の日付にセットします。(翌月１日)(5.5.5.2 追加) ・AED ：翌月の最後の日付にセットします。(翌月月末)(5.5.5.2 追加)

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

    5.5.7.2 (2012/10/09) 新規作成
    5.6.1.1 (2013/02/08) prmB処理を、calendarCalc メソッドへ移動

### calendarCalc

    public static final void calendarCalc(java.util.Calendar now,
                                          java.lang.String prmB)

  開始前設定値、または 終了後設定値の文字列から、オプション文字列を合成します。 基準となる日付に計算した結果を反映させます。 prmB は、日付についての加減算処理を行うためのコマンドを指定します。 ・SD ：当月の最初の日付にセットします。(当月１日) ・ED ：当月の最後の日付にセットします。(当月月末) ・SW ：日付処理の週初め(月曜日)にセットします。日付は当日より前に移動します。 ・EW ：日付処理の週末(日曜日)にセットします。日付は当日より後ろに移動します。 ・D1 ～ DXXX ：日を指定の分だけ進めます。D1なら翌日、D200 なら200日後 ・M1 ～ MXXX ：月を指定の分だけ進めます。M1なら翌月、M6 なら半年後 ・BSD ：先月の最初の日付にセットします。(先月１日)(5.5.5.2 追加) ・BED ：先月の最後の日付にセットします。(先月月末)(5.5.5.2 追加) ・ASD ：翌月の最初の日付にセットします。(翌月１日)(5.5.5.2 追加) ・AED ：翌月の最後の日付にセットします。(翌月月末)(5.5.5.2 追加) ・数字：日を指定の分だけ進めます。D1 ～ DXXX の簡略系

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

    5.6.1.1 (2013/02/08) getDateFormat( String ,String ,String ) から分離。

### getCalendar

    public static final java.util.Calendar getCalendar(java.lang.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 java.lang.String getDatePlus(java.lang.String baseDate,
                                                     int plus)

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

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

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

### getMonthPlus

    public static final java.lang.String getMonthPlus(java.lang.String baseDate,
                                                      int plus)

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

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

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

### getDatePlus

    public static final java.lang.String getDatePlus(java.lang.String baseDate,
                                                     java.lang.String plus,
                                                     int defTani,
                                                     java.lang.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)
  例外:
    `java.lang.NumberFormatException` - 加算する日数の単位が('y','M','d','H','m','s')以外の場合。
  変更履歴:

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

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

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