openGionopenGion
5.6.3.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 の文字列形式にしなければならないためです。 桁数は、8桁 または、14桁以外の場合は、変換エラーとします。

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

パラメータ:
value - 任意の日付け文字列
size - 変換したい桁数
戻り値:
数字だけで構成される文字列(例:20010417154822)(nullはゼロ文字列を返します)
変更履歴:
5.5.7.2 (2012/10/09) 新規作成
5.6.1.1 (2013/02/08) 桁数チェック導入。6桁以下だとエラーにする。

isStrict

public static final boolean isStrict(java.lang.String value)
日付文字列の厳密な整合性チェックを行います。 ここで指定できるのは、8文字(yyyyMMdd)、14文字(yyyyMMddHHmmss)のどちらかの 数字だけの日付文字列であり、それが、日付として正しいかどうかのチェックを行います。 正しければ、true を、間違っていれば、false を返します。 ここでは、20120230(2月30日)などの日付や、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  :8文字の日付データ(yyyyMMdd)を扱います。 ・Y2MD  :6文字の日付データ(yyMMdd)を扱います。 ・YM   :6文字の日付データ(yyyyMM)を扱います。 ・MD   :4文字の日付データ(MMdd)を扱います。(5.5.5.2 追加) ・HMS  :6文字の時刻データ(HHmmss)を扱います。 ・YMDHMS :14文字の日付データ(yyyyMMddHHmmss)を扱います。 ・EEE  :曜日をデフォルトロケール(EEE)で表示します。 F付きは、フォーマットされた日付を返します。 ・YMDF  :10文字の日付表現(yyyy/MM/dd)を扱います。 ・Y2MDF :8文字の日付表現(yy/MM/dd)を扱います。 ・YMF  :7文字の日付表現(yyyy/MM)を扱います。 ・HMSF  :8文字の時刻表現(HH:mm:ss)を扱います。 ・YMDHMSF:19文字の日付表現(yyyy/MM/dd HH:mm:ss)を扱います。 ・MDF  :5文字の月日表現(MM/dd)を扱います。 ・MDEF  :5文字+曜日の月日表現(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形式を推奨しますが、8文字でない場合は、'-' や '/' を削除の上、 前半8文字のみ使用します。たとえば、"2012/09/05 16:52:36" のようなフォーマットデータが渡された 場合、"20120905 16:52:36" に変換後、前半8文字の "20120905" が使われます。 よって、フォーマットされている場合でも処理をおこないますが、月、日は、頭ゼロ埋めの2文字で 渡してください。 第三引数 BB は、日付についての加減算処理を行うためのコマンドを指定します。 nullの場合は、なにも加減算処理を行いません。 ・SD :当月の最初の日付にセットします。(当月1日) ・ED :当月の最後の日付にセットします。(当月月末) ・SW :日付処理の週初め(月曜日)にセットします。日付は当日より前に移動します。 ・EW :日付処理の週末(日曜日)にセットします。日付は当日より後ろに移動します。 ・H1 ~ HXXX :時を指定の分だけ進めます。H1なら1時間後、H24 なら24時間後(5.5.5.6 (2012/08/31) 追加) ・D1 ~ DXXX :日を指定の分だけ進めます。D1なら翌日、D200 なら200日後 ・M1 ~ MXXX :月を指定の分だけ進めます。M1なら翌月、M6 なら半年後 ・BSD :先月の最初の日付にセットします。(先月1日)(5.5.5.2 追加) ・BED :先月の最後の日付にセットします。(先月月末)(5.5.5.2 追加) ・ASD :翌月の最初の日付にセットします。(翌月1日)(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 :当月の最初の日付にセットします。(当月1日) ・ED :当月の最後の日付にセットします。(当月月末) ・SW :日付処理の週初め(月曜日)にセットします。日付は当日より前に移動します。 ・EW :日付処理の週末(日曜日)にセットします。日付は当日より後ろに移動します。 ・D1 ~ DXXX :日を指定の分だけ進めます。D1なら翌日、D200 なら200日後 ・M1 ~ MXXX :月を指定の分だけ進めます。M1なら翌月、M6 なら半年後 ・BSD :先月の最初の日付にセットします。(先月1日)(5.5.5.2 追加) ・BED :先月の最後の日付にセットします。(先月月末)(5.5.5.2 追加) ・ASD :翌月の最初の日付にセットします。(翌月1日)(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)
指定の引数の日付け文字列より、カレンダオブジェクトを作成します。 引数は、数字以外の文字を削除した状態に変換後、処理に回します。 不要な文字を削除した状態で、8文字以上になるように指定してください。 例外的に、6文字の場合は、yyyyMM01 とみなして、"01" 文字列を付与します。 引数に null を指定すると、現在時刻のカレンダを返します。 それ以外のデータで、8ケタ以下の場合は、RuntimeException が発生します。 8ケタ以上14ケタ未満の場合は、8ケタ分を、年月日に分離したカレンダ オブジェクトを作成します。14ケタ以上で初めて、時分秒を含むカレンダ を作成します。

パラメータ:
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 の8文字形式になります。 引数に 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 形式の1文字を指定します。大文字、小文字も識別します。 plus="5M" とすれば、5か月、plus="5d" とすれば、5日 追加します。 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) 新規作成

openGion 5.6.3.0

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