パッケージ 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) 新規作成
機能分類
ユーティリティ
導入されたバージョン:
JDK7.0,
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    static void
    開始前設定値、または 終了後設定値の文字列から、オプション文字列を合成します。 基準となる日付に計算した結果を反映させます。 CC引数の加減算パラメータは、0 です。
    static void
    calendarCalc(Calendar now, String prmB, int intC)
    開始前設定値、または 終了後設定値の文字列から、オプション文字列を合成します。 基準となる日付に計算した結果を反映させます。 prmB は、日付についての加減算処理を行うためのコマンドを指定します。 ・SY :当年の最初の日付にセットします。(当年1月1日)。CC引数は、-N:N年前、0:当年(=SY)、N:N年後 6.9.2.1 (2018/03/12) ・SD :当月の最初の日付にセットします。(当月1日)。CC引数は、-N:N月前、0:当月(=SD)、N:N月後、-1:BSD と同じ、1:ASD と同じ ・SW :日付処理の週初め(月曜日)にセットします。日付は当日より前に移動します。CC引数は、-N:N週前、0:今週(=SW)、N:N週後 ・SH :指定の最初の時にセットします。(分秒を0000にする)。CC引数は、時の倍数(4と指定すれば、4時間単位に前に戻る) 6.7.4.1 (2017/02/17) ・SM :指定の最初の分にセットします。(秒を00にする)。CC引数は、分の倍数(15と指定すれば、15分単位に前に戻る) 6.7.4.1 (2017/02/17) ・SS :指定の最初の秒にセットします。CC引数は、秒の倍数(15と指定すれば、15秒単位に前に戻る) 6.7.4.1 (2017/02/17) ・EY :当年の最後の日付にセットします。(当年年末)。CC引数は、-N:N年前、0:当年(=EY)、N:N年後 6.9.2.1 (2018/03/12) ・ED :当月の最後の日付にセットします。(当月月末)。CC引数は、-N:N月前、0:当月(=ED)、N:N月後、-1:BED と同じ、1:AED と同じ ・EW :日付処理の週末(日曜日)にセットします。日付は当日より後ろに移動します。CC引数は、-N:N週前、0:今週(=EW)、N:N週後 ・EH :指定の次の時にセットします。(分秒を0000にした次の時)。CC引数は、時の倍数(4と指定すれば、4時間単位に前に進む) 6.7.4.1 (2017/02/17) ・EM :指定の次の分にセットします。(秒を00にした次の分)。CC引数は、分の倍数(15と指定すれば、15分単位に前に進む) 6.7.4.1 (2017/02/17) ・ES :指定の次の秒にセットします。CC引数は、秒の倍数(15と指定すれば、15秒単位に前に進む) 6.7.4.1 (2017/02/17) ・M1 ~ MXXX :月を指定の分だけ進めます。M1なら翌月、M6 なら半年後 ・D1 ~ DXXX :日を指定の分だけ進めます。D1なら翌日、D200 なら200日後 ・H1 ~ HXXX :時を指定の分だけ進めます。H1なら1時間後、H24 なら24時間後(5.5.5.6 (2012/08/31) 追加) ・MI :分を指定の分だけ進めます。第四引数(intC) で、時間を指定します。(6.8.4.1 (2017/12/18) 追加) ・YMD :CC 引数のYMD表記の日付を加減算します。6.8.4.1 (2017/12/18) 追加 ・HM :CC 引数のHM表記の時刻を加減算します。6.8.4.1 (2017/12/18) 追加 ・NO :AA 引数がnullの場合、現在時刻ではなく空文字列にします。 7.0.1.3 (2018/11/12) 追加 ・(有閑)BSD :先月の最初の日付にセットします。(先月1日)(5.5.5.2 追加)。SD-1 と同等 ・(有閑)BED :先月の最後の日付にセットします。(先月月末)(5.5.5.2 追加)。ED-1 と同等 ・(有閑)ASD :翌月の最初の日付にセットします。(翌月1日)(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 引数は、加算されます。 6.8.4.1 (2017/12/18) BB 引数に、HM を指定した場合、時分のデータを加算します。この場合、時に関しては、24時間を越える 場合は、日付に加算されます。例えば、翌朝の6時を指定する場合、3000 と指定することで、1日+0600 となります。
    static String
    calendarDiff(Calendar timeA, String prmB, int intC)
    日付の差分を求めます。 timeA - timeB を求め、intCの数値で単位を指定します。 intC は、1:年 2:月 3:日 4:時 5:分 6:秒 に換算した単位での差分になります。 端数は出ません。
    static Calendar
    指定の引数の日付け文字列より、カレンダオブジェクトを作成します。 引数は、数字以外の文字を削除した状態に変換後、処理に回します。 不要な文字を削除した状態で、8文字以上になるように指定してください。 例外的に、6文字の場合は、yyyyMM01 とみなして、"01" 文字列を付与します。 引数に null を指定すると、現在時刻のカレンダを返します。 それ以外のデータで、8ケタ以下の場合は、RuntimeException が発生します。 8ケタ以上14ケタ未満の場合は、8ケタ分を、年月日に分離したカレンダ オブジェクトを作成します。14ケタ以上で初めて、時分秒を含むカレンダ を作成します。
    static String
    日付関係の情報を簡易的に処理します。 引数に与えるのは、{@DATE.XXXX} の XXXX 文字列になります。 この "XXXX" 文字列は、"key prmA prmB prmC" 形式を取ることができます。 各文字列をスペースで分割して、先頭から変数に割り当てます。 また、prmA の日付文字判定と、数値変換と、prmC の数値変換も行います。 ただし、リクエスト変数の @ 文字列変換は、出来ません。
    static String
    日付関係の情報を簡易的に処理します。 処理コマンドと、CC引数の加減算パラメータを使用しないバージョンです。
    static String
    getDateFormat(String key, String prmA, String prmB, int intC)
    日付関係の情報を簡易的に処理します。 第一引数(key) "XXXX" は、日付処理を行うフォーマットの予約語になっています。 ・Y4 :4文字の年データ(yyyy)を扱います。 ・YMD :8文字の4-2-2年月日データ(yyyyMMdd)を扱います。 ・Y2MD :6文字の2-2-2年月日データ(yyMMdd)を扱います。 ・YM :6文字の4-2年月データ(yyyyMM)を扱います。 ・MD :4文字の月日データ(MMdd)を扱います。 ・HMS :6文字の2-2-2時分秒データ(HHmmss)を扱います。 ・HM :4文字の2-2時分データ(HHmm)を扱います。6.7.4.1 (2017/02/17) ・YMDHMS :14文字の4-2-2-2-2-2年月日時分秒データ(yyyyMMddHHmmss)を扱います。 ・YMDHM :12文字の4-2-2-2-2年月日時分データ(yyyyMMddHHmm)を扱います。 ・YMDH :10文字の4-2-2-2年月日時データ(yyyyMMddHH)を扱います。 ・EEE :曜日をデフォルトロケールで表示します。 F付きは、フォーマットされた日付を返します。 ・YMDF :10文字の日付表現(yyyy/MM/dd)を扱います。 ・YMD-F :HTML5 type="date" の日付表現(yyyy-MM-dd)を扱います。8.0.1.2 (2021/11/19) ・Y2MDF :8文字の日付表現(yy/MM/dd)を扱います。 ・YMF :7文字の日付表現(yyyy/MM)を扱います。 ・YM-F :HTML5 type="month"の日付表現(yyyy-MM)を扱います。8.0.1.2 (2021/11/19) ・HMSF :8文字の時刻表現(HH:mm:ss)を扱います。 ・HMF :5文字の時刻表現(HH:mm)を扱います。6.7.4.1 (2017/02/17) ・YMDHMSF:19文字の日付表現(yyyy/MM/dd HH:mm:ss)を扱います。 ・YMDHMF :17文字の日付表現(yyyy/MM/dd HH:mm)を扱います。 ・YMDHM-F:17文字の日付表現(yyyy-MM-ddTHH:mm)を扱います。8.0.1.2 (2021/11/19) ・MDF :5文字の月日表現(MM/dd)を扱います。 ・MDEF :5文字+曜日の月日表現(MM/dd(EEE))を扱います。 ・MDHMF :11文字の月日時分表現(MM/dd HH:mm)を扱います。 (7.0.0.1 (2018/10/09) 追加) ・MD2F :漢字の月日表現(MM月dd日)を扱います。(5.5.5.2 追加) ・HM2F :漢字の時分表現(HH時mm分)を扱います。(7.0.0.1 (2018/10/09) 追加) ・MDHM2F :漢字の月日時分表現(MM月dd日 HH時mm分)を扱います。(7.0.0.1 (2018/10/09) 追加) ・GYMDF :和暦の年月日表現(GGGGyyyy年MM月dd日)を扱います。 ・G2YMDF :和暦の日付表現(Gyyyy/MM/dd)を扱います。 ・GYMF :和暦の年月表現(GGGGyyyy年MM月)を扱います。 ・GYF :和暦の年表現(GGGGyyyy)を扱います。 ・DIFF :日付の差分を求めます。(7.0.1.1 (2018/10/22) 追加) AA - BB を求め、CCの数値で単位を指定します。 なお、上記以外のフォーマットを指定する場合は、XXXX部分に直接記述できます。(5.5.5.2 追加) ただし、基本的には、自由フォーマットは、エラーチェックがない為、使わないでください。 第二引数(prmA) AA は、基準となる日付を、yyyyMMdd形式で指定します。nullの場合は、現在時刻を使用します。 指定できる日付は、yyyyMMdd形式を推奨しますが、'/' , '-' , ' ' , ':' を削除して使います。 6桁の場合は、yyyyMM + 01 とし、8ケタの場合は、yyyyMMdd とし、14ケタ以上の場合は、前半14文字を yyyyMMddHHmmss として処理します。それ以外の桁数の場合は、エラーになります。 たとえば、"2012/09/05 16:52:36" のようなフォーマットデータの場合、'/' , '-' , ' ' , ':' を削除して "20120905165236" に変換後、日付オブジェクトに変換されます。 第三引数(prmB) BB は、日付についての加減算処理を行うためのコマンドを指定します。 nullの場合は、なにも加減算処理を行いません。 ・SY :当年の最初の日付にセットします。(当年1月1日)。CC引数は、-N:N年前、0:当年(=SY)、N:N年後 6.9.2.1 (2018/03/12) ・SD :当月の最初の日付にセットします。(当月1日)。CC引数は、-N:N月前、0:当月(=SD)、N:N月後、-1:BSD と同じ、1:ASD と同じ ・SW :日付処理の週初め(月曜日)にセットします。日付は当日より前に移動します。CC引数は、-N:N週前、0:今週(=SW)、N:N週後 ・SH :指定の最初の時にセットします。(分秒を0000にする)。CC引数は、時の倍数(4と指定すれば、4時間単位に前に戻る) 6.7.4.1 (2017/02/17) ・SM :指定の最初の分にセットします。(秒を00にする)。CC引数は、分の倍数(15と指定すれば、15分単位に前に戻る) 6.7.4.1 (2017/02/17) ・SS :指定の最初の秒にセットします。CC引数は、秒の倍数(15と指定すれば、15秒単位に前に戻る) 6.7.4.1 (2017/02/17) ・EY :当年の最後の日付にセットします。(当年年末)。CC引数は、-N:N年前、0:当年(=EY)、N:N年後 6.9.2.1 (2018/03/12) ・ED :当月の最後の日付にセットします。(当月月末)。CC引数は、-N:N月前、0:当月(=ED)、N:N月後、-1:BED と同じ、1:AED と同じ ・EW :日付処理の週末(日曜日)にセットします。日付は当日より後ろに移動します。CC引数は、-N:N週前、0:今週(=EW)、N:N週後 ・EH :指定の次の時にセットします。(分秒を0000にした次の時)。CC引数は、時の倍数(4と指定すれば、4時間単位に前に進む) 6.7.4.1 (2017/02/17) ・EM :指定の次の分にセットします。(秒を00にした次の分)。CC引数は、分の倍数(15と指定すれば、15分単位に前に進む) 6.7.4.1 (2017/02/17) ・ES :指定の次の秒にセットします。CC引数は、秒の倍数(15と指定すれば、15秒単位に前に進む) 6.7.4.1 (2017/02/17) ・M1 ~ MXXX :月を指定の分だけ進めます。M1なら翌月、M6 なら半年後 ・D1 ~ DXXX :日を指定の分だけ進めます。D1なら翌日、D200 なら200日後 ・H1 ~ HXXX :時を指定の分だけ進めます。H1なら1時間後、H24 なら24時間後(5.5.5.6 (2012/08/31) 追加) ・MI :分を指定の分だけ進めます。第四引数(intC) で、時間を指定します。(6.8.4.1 (2017/12/18) 追加) ・YMD :CC 引数のYMD表記の日付を加減算します。6.8.4.1 (2017/12/18) 追加 ・HM :CC 引数のHM表記の時刻を加減算します。6.8.4.1 (2017/12/18) 追加 ・NO :AA 引数がnullの場合、現在時刻ではなく空文字列にします。 7.0.1.3 (2018/11/12) 追加 ・(有閑)BSD :先月の最初の日付にセットします。(先月1日)(5.5.5.2 追加)。SD -1 と同等 ・(有閑)BED :先月の最後の日付にセットします。(先月月末)(5.5.5.2 追加)。ED -1 と同等 ・(有閑)ASD :翌月の最初の日付にセットします。(翌月1日)(5.5.5.2 追加)。SD 1 と同等 ・(有閑)AED :翌月の最後の日付にセットします。(翌月月末)(5.5.5.2 追加)。ED 1 と同等 7.0.1.1 (2018/10/22) DATE.DIFF の場合、BB 引数は、日付データになります。AA-BB の関係です。 CC 引数は、特別な処理で、BB 引数に対して、加算、減算のための数字を指定できます。(5.7.4.1 (2014/03/14) 追加) 従来は、BB 引数が、"H" , "D" , "M" の 1文字パラメータの場合のみ利用可能でした。 これは、"H15" と指定するのと、"H" "15" と指定するのと同じ意味になります。 異なるのは、CC 引数も、(@CC)指定で、リクエストパラメータが使用できます。 従来は、文字列として結合された状態でしか、BB 引数を渡せませんでしたが、この、CC 引数の 追加で、日付の加減算を、パラメータ指定できるようになります。 数字以外の文字が指定されたり、パラメータの解析結果が NULL の場合には、BB引数自体も無視されます。 注意点は、各 BB 引数に応じて、数字の意味が異なるという事です。 HXXX,DXXX,MXXX 形式に、CC 引数を付けた場合は、XXX にさらに加算されます。 prmB に、数字を使用した場合、(コマンドでない場合)にも、CC 引数は、加算されます。 7.0.1.1 (2018/10/22) DATE.DIFF の場合、CC 引数は、差分の単位を指定するキーワードになります。AA-BB の結果を、 1:年 2:月 3:日 4:時 5:分 6:秒 に換算 して返します。端数は切り捨てで整数で返します。
    static String
    getDatePlus(String baseDate, int plus)
    指定の引数の日付け文字列(yyyyMMdd)より、日付を加算して返します。 マイナスを与えると、減算します。 日付以上の精度の文字列を渡しても、日付のみの計算となります。 結果は、引数の日付フォーマットとは全く別で、yyyyMMdd の8文字形式になります。 引数に null を渡すと、実行時の日付をベースとして処理します。
    static String
    getDatePlus(String baseDate, String plus, int defTani, String format)
    指定の引数の日付け文字列(yyyyMMdd、yyyyMMddHHmmss)に、日付を加算して返します。 マイナスを与えると、減算します。 指定する日付には、単位を付与することが可能です。 単位は、yyyyMMddHHmmss 形式の1文字を指定します。大文字、小文字も識別します。 plus="5M" とすれば、5か月、plus="5d" とすれば、5日 追加します。 plus に単位を付けない場合は、tani に指定の単位を使います。 plus そのものが、null か、isEmpty の場合は、加算は、1 になります。 baseDate 文字列を日付文字列に変換後、Calendar で計算し、結果を、format 形式に変換します。 引数に null を渡すと、実行時の日付をベースとして処理します。
    static String
    getMonthPlus(String baseDate, int plus)
    現在の月に、指定の月数をプラスした日付文字列を返します。 日付文字列のフォーマットは、"yyyyMM" です。 指定する月数にマイナスを指定すると、減算できます。
    static boolean
    日付文字列の厳密な整合性チェックを行います。 ここで指定できるのは、8文字(yyyyMMdd)、14文字(yyyyMMddHHmmss)のどちらかの 数字だけの日付文字列であり、それが、日付として正しいかどうかのチェックを行います。 正しければ、true を、間違っていれば、false を返します。 ここでは、20120230(2月30日)などの日付や、20120101235960 なども false になります。 引数が、null および、空文字列の場合も、false を返しますので、避けたい場合は、事前に 判定しておいてください。 内部処理としては、DateFormat で、setLenient( false ) を設定することで、 日付/時刻解析を厳密に解析するにして、ParseException が発生しないかどうか判定しています。
    static Calendar
    指定のの文字列から、カレンダオブジェクトを作成します。
    static String
    parseDate(String value, int size)
    日付文字列の桁数の整合性を取ります。 これは、内部で、parseNumber(String) 処理により、不要なフォーマット記号を削除します。 ここでは、基本的には、6文字(yyyyMM)、8文字(yyyyMMdd)、14文字(yyyyMMddHHmmss) の日付文字列を作成することを想定していますが、指定の桁数以外は、エラーになります。 引数が、null ⇒ 桁数に無関係に、空文字列を返す。 引数の桁数が一致 ⇒ その値を返す。 引数の桁数が不一致 ⇒ エラー ただし、引数の最大長は、14ケタに制限しています。 このメソッドでは、日付として成立しているかどうか(99999999など)は判定していません。
    static String
    parseDate(String value, int minSize, int maxSize)
    日付文字列の桁数の整合性を取ります。 これは、内部で、parseNumber(String) 処理により、不要なフォーマット記号を削除します。 ここでは、基本的には、6文字(yyyyMM)、8文字(yyyyMMdd)、14文字(yyyyMMddHHmmss) の日付文字列を作成することを想定していますが、それ以外の桁数でも下記のルールに従って 処理されます。 引数が、null ⇒ 桁数に無関係に、空文字列を返す。 引数の桁数が範囲内 ⇒ 以下の処理を実行する。 引数の桁数を同じ ⇒ そのまま返す。 引数の桁数より大きい ⇒ 余をカットして、引数の最大長にそろえる。 引数の桁数に足りない ⇒ "20000101000000" の文字列の部分文字列を結合させて、引数の最大長にそろえる。 ただし、引数の最大長は、14ケタに制限しています。 このメソッドでは、日付として成立しているかどうか(99999999など)は判定していません。
    static String
    指定の文字列から、以下の文字を削除した文字列を返します。 '/' , '-' , ' ' , ':' の数字以外の文字を含むフォーマットされた 日付文字列を、日付データだけに変換する場合に利用することを想定しています。 よって、マイナス記号や、小数点、コンマなども削除されます。 このメソッドでは、日付としての整合性や桁チェックは行いませんが、 桁数は、6桁、8桁、14桁のどれかに、合わせます。 「yyyy/MM/dd HH:mm:ss」 形式を基準としますが、「yyyy/M」「yyyy/M/d」「yy/M/d」「M/d」 「HH:mm:ss」「H:m」形式にも、対応します。 "/" が、"-" に変更されているケースも対応可能ですが、月/年 形式や、英語、日本語の 月表示には未対応です。 引数が、null の場合は、ゼロ文字列に、変換します。 ※ 6.0.2.5 (2014/10/31) 桁数チェックだけは行います。 桁数は、6桁、8桁、14桁のどれかに、合わせます。
    static String
    指定の文字列から、yyyy-mm-dd hh:mm:ss 形式の文字列を作成します。 これは、java.sql.Timestamp オブジェクトを文字列から作成するに当たり、 Timestamp の文字列形式にしなければならないためです。 桁数は、8桁 または、14桁以外の場合は、変換エラーとします。
    static String[]
    stepYM(String begin, String end, int step)
    指定の年月文字列のFrom-Toを、文字列の配列で返します。 "yyyyMM" 形式の範囲内の文字列配列を作成します。 ※ endがnullの場合は、beginそのものを配列にセットして返します。 つまり、1件のみの配列になります。 ※ end == beginの場合は、配列は、ゼロ個の配列になります。
    static String
    toYmd(String ymd, String format)
    指定の日付文字列を指定の形式の文字列に変換します。 入力の日付文字列は、"yyyyMMddHHmmss" または、 "yyyyMMdd" です。 記号が入っている場合でも、一応処理します。 指定のフォーマットも、同様に、yyyyMMddHHmmss 形式で指定します。

    クラスから継承されたメソッド java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • メソッドの詳細

    • parseNumber

      public static String parseNumber(String value)
      指定の文字列から、以下の文字を削除した文字列を返します。 '/' , '-' , ' ' , ':' の数字以外の文字を含むフォーマットされた 日付文字列を、日付データだけに変換する場合に利用することを想定しています。 よって、マイナス記号や、小数点、コンマなども削除されます。 このメソッドでは、日付としての整合性や桁チェックは行いませんが、 桁数は、6桁、8桁、14桁のどれかに、合わせます。 「yyyy/MM/dd HH:mm:ss」 形式を基準としますが、「yyyy/M」「yyyy/M/d」「yy/M/d」「M/d」 「HH:mm:ss」「H:m」形式にも、対応します。 "/" が、"-" に変更されているケースも対応可能ですが、月/年 形式や、英語、日本語の 月表示には未対応です。 引数が、null の場合は、ゼロ文字列に、変換します。 ※ 6.0.2.5 (2014/10/31) 桁数チェックだけは行います。 桁数は、6桁、8桁、14桁のどれかに、合わせます。
      パラメータ:
      value - 任意の文字列(例:2001/04/17 15:48:22)
      戻り値:
      数字だけで構成される文字列(例:20010417154822)(nullはゼロ文字列を返します)
      変更履歴:
      5.5.7.2 (2012/10/09) 新規作成, 5.5.8.3 (2012/11/17) 数字のみ返す仕様だったが、対象以外の文字入力はそのまま返すよう変更, 6.0.2.5 (2014/10/31) 簡易的な桁数チェックだけは行います。, 6.2.3.0 (2015/05/01) 内部処理を大幅に変更します。, 8.0.1.2 (2021/11/19) yyyy-MM-ddTHH:mm 対応(スペースではなくTで区切る), 8.5.5.1 (2024/02/29) switch文にアロー構文を使用
      このメソッドは、nullを返しません
    • parseTimestamp

      public static String parseTimestamp(String value)
      指定の文字列から、yyyy-mm-dd hh:mm:ss 形式の文字列を作成します。 これは、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 String parseDate(String value, int size)
      日付文字列の桁数の整合性を取ります。 これは、内部で、parseNumber(String) 処理により、不要なフォーマット記号を削除します。 ここでは、基本的には、6文字(yyyyMM)、8文字(yyyyMMdd)、14文字(yyyyMMddHHmmss) の日付文字列を作成することを想定していますが、指定の桁数以外は、エラーになります。 引数が、null ⇒ 桁数に無関係に、空文字列を返す。 引数の桁数が一致 ⇒ その値を返す。 引数の桁数が不一致 ⇒ エラー ただし、引数の最大長は、14ケタに制限しています。 このメソッドでは、日付として成立しているかどうか(99999999など)は判定していません。
      パラメータ:
      value - 任意の日付け文字列
      size - 変換したい桁数
      戻り値:
      数字だけで構成される文字列(例:20010417154822)(nullはゼロ文字列を返します)
      変更履歴:
      5.6.6.0 (2013/07/05) メソッドの内容を移す。
      このメソッドは、nullを返しません
    • parseDate

      public static String parseDate(String value, int minSize, int maxSize)
      日付文字列の桁数の整合性を取ります。 これは、内部で、parseNumber(String) 処理により、不要なフォーマット記号を削除します。 ここでは、基本的には、6文字(yyyyMM)、8文字(yyyyMMdd)、14文字(yyyyMMddHHmmss) の日付文字列を作成することを想定していますが、それ以外の桁数でも下記のルールに従って 処理されます。 引数が、null ⇒ 桁数に無関係に、空文字列を返す。 引数の桁数が範囲内 ⇒ 以下の処理を実行する。 引数の桁数を同じ ⇒ そのまま返す。 引数の桁数より大きい ⇒ 余をカットして、引数の最大長にそろえる。 引数の桁数に足りない ⇒ "20000101000000" の文字列の部分文字列を結合させて、引数の最大長にそろえる。 ただし、引数の最大長は、14ケタに制限しています。 このメソッドでは、日付として成立しているかどうか(99999999など)は判定していません。
      パラメータ:
      value - 任意の日付け文字列
      minSize - 変換したい桁数の最小値
      maxSize - 変換したい桁数の最大値
      戻り値:
      数字だけで構成される文字列(例:20010417154822)(nullはゼロ文字列を返します)
      変更履歴:
      5.5.7.2 (2012/10/09) 新規作成, 5.6.1.1 (2013/02/08) 桁数チェック導入。6桁以下だとエラーにする。, 5.6.6.0 (2013/07/05) 桁数チェックの最小-最大指定, 6.2.3.0 (2015/05/01) len == maxSize のとき、パース文字列ではなく、元の値を返していた。
      このメソッドは、nullを返しません
    • isStrict

      public static boolean isStrict(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 String getDateFormat(String value)
      日付関係の情報を簡易的に処理します。 引数に与えるのは、{@DATE.XXXX} の XXXX 文字列になります。 この "XXXX" 文字列は、"key prmA prmB prmC" 形式を取ることができます。 各文字列をスペースで分割して、先頭から変数に割り当てます。 また、prmA の日付文字判定と、数値変換と、prmC の数値変換も行います。 ただし、リクエスト変数の @ 文字列変換は、出来ません。
      パラメータ:
      value - 日付引数のパラメータ
      戻り値:
      メッセージ情報
      関連項目:
      変更履歴:
      6.9.2.1 (2018/03/12) 新規追加
      このメソッドは、nullを返しません
    • getDateFormat

      public static String getDateFormat(String key, String prmA)
      日付関係の情報を簡易的に処理します。 処理コマンドと、CC引数の加減算パラメータを使用しないバージョンです。
      パラメータ:
      key - フォーマットの予約語
      prmA - 基準となる日付(nullの場合は、処理時刻)
      戻り値:
      メッセージ情報
      関連項目:
      変更履歴:
      6.9.2.1 (2018/03/12) メソッドの引数を簡素化
      このメソッドは、nullを返しません
    • getDateFormat

      public static String getDateFormat(String key, String prmA, String prmB, int intC)
      日付関係の情報を簡易的に処理します。 第一引数(key) "XXXX" は、日付処理を行うフォーマットの予約語になっています。 ・Y4 :4文字の年データ(yyyy)を扱います。 ・YMD :8文字の4-2-2年月日データ(yyyyMMdd)を扱います。 ・Y2MD :6文字の2-2-2年月日データ(yyMMdd)を扱います。 ・YM :6文字の4-2年月データ(yyyyMM)を扱います。 ・MD :4文字の月日データ(MMdd)を扱います。 ・HMS :6文字の2-2-2時分秒データ(HHmmss)を扱います。 ・HM :4文字の2-2時分データ(HHmm)を扱います。6.7.4.1 (2017/02/17) ・YMDHMS :14文字の4-2-2-2-2-2年月日時分秒データ(yyyyMMddHHmmss)を扱います。 ・YMDHM :12文字の4-2-2-2-2年月日時分データ(yyyyMMddHHmm)を扱います。 ・YMDH :10文字の4-2-2-2年月日時データ(yyyyMMddHH)を扱います。 ・EEE :曜日をデフォルトロケールで表示します。 F付きは、フォーマットされた日付を返します。 ・YMDF :10文字の日付表現(yyyy/MM/dd)を扱います。 ・YMD-F :HTML5 type="date" の日付表現(yyyy-MM-dd)を扱います。8.0.1.2 (2021/11/19) ・Y2MDF :8文字の日付表現(yy/MM/dd)を扱います。 ・YMF :7文字の日付表現(yyyy/MM)を扱います。 ・YM-F :HTML5 type="month"の日付表現(yyyy-MM)を扱います。8.0.1.2 (2021/11/19) ・HMSF :8文字の時刻表現(HH:mm:ss)を扱います。 ・HMF :5文字の時刻表現(HH:mm)を扱います。6.7.4.1 (2017/02/17) ・YMDHMSF:19文字の日付表現(yyyy/MM/dd HH:mm:ss)を扱います。 ・YMDHMF :17文字の日付表現(yyyy/MM/dd HH:mm)を扱います。 ・YMDHM-F:17文字の日付表現(yyyy-MM-ddTHH:mm)を扱います。8.0.1.2 (2021/11/19) ・MDF :5文字の月日表現(MM/dd)を扱います。 ・MDEF :5文字+曜日の月日表現(MM/dd(EEE))を扱います。 ・MDHMF :11文字の月日時分表現(MM/dd HH:mm)を扱います。 (7.0.0.1 (2018/10/09) 追加) ・MD2F :漢字の月日表現(MM月dd日)を扱います。(5.5.5.2 追加) ・HM2F :漢字の時分表現(HH時mm分)を扱います。(7.0.0.1 (2018/10/09) 追加) ・MDHM2F :漢字の月日時分表現(MM月dd日 HH時mm分)を扱います。(7.0.0.1 (2018/10/09) 追加) ・GYMDF :和暦の年月日表現(GGGGyyyy年MM月dd日)を扱います。 ・G2YMDF :和暦の日付表現(Gyyyy/MM/dd)を扱います。 ・GYMF :和暦の年月表現(GGGGyyyy年MM月)を扱います。 ・GYF :和暦の年表現(GGGGyyyy)を扱います。 ・DIFF :日付の差分を求めます。(7.0.1.1 (2018/10/22) 追加) AA - BB を求め、CCの数値で単位を指定します。 なお、上記以外のフォーマットを指定する場合は、XXXX部分に直接記述できます。(5.5.5.2 追加) ただし、基本的には、自由フォーマットは、エラーチェックがない為、使わないでください。 第二引数(prmA) AA は、基準となる日付を、yyyyMMdd形式で指定します。nullの場合は、現在時刻を使用します。 指定できる日付は、yyyyMMdd形式を推奨しますが、'/' , '-' , ' ' , ':' を削除して使います。 6桁の場合は、yyyyMM + 01 とし、8ケタの場合は、yyyyMMdd とし、14ケタ以上の場合は、前半14文字を yyyyMMddHHmmss として処理します。それ以外の桁数の場合は、エラーになります。 たとえば、"2012/09/05 16:52:36" のようなフォーマットデータの場合、'/' , '-' , ' ' , ':' を削除して "20120905165236" に変換後、日付オブジェクトに変換されます。 第三引数(prmB) BB は、日付についての加減算処理を行うためのコマンドを指定します。 nullの場合は、なにも加減算処理を行いません。 ・SY :当年の最初の日付にセットします。(当年1月1日)。CC引数は、-N:N年前、0:当年(=SY)、N:N年後 6.9.2.1 (2018/03/12) ・SD :当月の最初の日付にセットします。(当月1日)。CC引数は、-N:N月前、0:当月(=SD)、N:N月後、-1:BSD と同じ、1:ASD と同じ ・SW :日付処理の週初め(月曜日)にセットします。日付は当日より前に移動します。CC引数は、-N:N週前、0:今週(=SW)、N:N週後 ・SH :指定の最初の時にセットします。(分秒を0000にする)。CC引数は、時の倍数(4と指定すれば、4時間単位に前に戻る) 6.7.4.1 (2017/02/17) ・SM :指定の最初の分にセットします。(秒を00にする)。CC引数は、分の倍数(15と指定すれば、15分単位に前に戻る) 6.7.4.1 (2017/02/17) ・SS :指定の最初の秒にセットします。CC引数は、秒の倍数(15と指定すれば、15秒単位に前に戻る) 6.7.4.1 (2017/02/17) ・EY :当年の最後の日付にセットします。(当年年末)。CC引数は、-N:N年前、0:当年(=EY)、N:N年後 6.9.2.1 (2018/03/12) ・ED :当月の最後の日付にセットします。(当月月末)。CC引数は、-N:N月前、0:当月(=ED)、N:N月後、-1:BED と同じ、1:AED と同じ ・EW :日付処理の週末(日曜日)にセットします。日付は当日より後ろに移動します。CC引数は、-N:N週前、0:今週(=EW)、N:N週後 ・EH :指定の次の時にセットします。(分秒を0000にした次の時)。CC引数は、時の倍数(4と指定すれば、4時間単位に前に進む) 6.7.4.1 (2017/02/17) ・EM :指定の次の分にセットします。(秒を00にした次の分)。CC引数は、分の倍数(15と指定すれば、15分単位に前に進む) 6.7.4.1 (2017/02/17) ・ES :指定の次の秒にセットします。CC引数は、秒の倍数(15と指定すれば、15秒単位に前に進む) 6.7.4.1 (2017/02/17) ・M1 ~ MXXX :月を指定の分だけ進めます。M1なら翌月、M6 なら半年後 ・D1 ~ DXXX :日を指定の分だけ進めます。D1なら翌日、D200 なら200日後 ・H1 ~ HXXX :時を指定の分だけ進めます。H1なら1時間後、H24 なら24時間後(5.5.5.6 (2012/08/31) 追加) ・MI :分を指定の分だけ進めます。第四引数(intC) で、時間を指定します。(6.8.4.1 (2017/12/18) 追加) ・YMD :CC 引数のYMD表記の日付を加減算します。6.8.4.1 (2017/12/18) 追加 ・HM :CC 引数のHM表記の時刻を加減算します。6.8.4.1 (2017/12/18) 追加 ・NO :AA 引数がnullの場合、現在時刻ではなく空文字列にします。 7.0.1.3 (2018/11/12) 追加 ・(有閑)BSD :先月の最初の日付にセットします。(先月1日)(5.5.5.2 追加)。SD -1 と同等 ・(有閑)BED :先月の最後の日付にセットします。(先月月末)(5.5.5.2 追加)。ED -1 と同等 ・(有閑)ASD :翌月の最初の日付にセットします。(翌月1日)(5.5.5.2 追加)。SD 1 と同等 ・(有閑)AED :翌月の最後の日付にセットします。(翌月月末)(5.5.5.2 追加)。ED 1 と同等 7.0.1.1 (2018/10/22) DATE.DIFF の場合、BB 引数は、日付データになります。AA-BB の関係です。 CC 引数は、特別な処理で、BB 引数に対して、加算、減算のための数字を指定できます。(5.7.4.1 (2014/03/14) 追加) 従来は、BB 引数が、"H" , "D" , "M" の 1文字パラメータの場合のみ利用可能でした。 これは、"H15" と指定するのと、"H" "15" と指定するのと同じ意味になります。 異なるのは、CC 引数も、(@CC)指定で、リクエストパラメータが使用できます。 従来は、文字列として結合された状態でしか、BB 引数を渡せませんでしたが、この、CC 引数の 追加で、日付の加減算を、パラメータ指定できるようになります。 数字以外の文字が指定されたり、パラメータの解析結果が NULL の場合には、BB引数自体も無視されます。 注意点は、各 BB 引数に応じて、数字の意味が異なるという事です。 HXXX,DXXX,MXXX 形式に、CC 引数を付けた場合は、XXX にさらに加算されます。 prmB に、数字を使用した場合、(コマンドでない場合)にも、CC 引数は、加算されます。 7.0.1.1 (2018/10/22) DATE.DIFF の場合、CC 引数は、差分の単位を指定するキーワードになります。AA-BB の結果を、 1:年 2:月 3:日 4:時 5:分 6:秒 に換算 して返します。端数は切り捨てで整数で返します。
      パラメータ:
      key - フォーマットの予約語
      prmA - 基準となる日付(nullの場合は、処理時刻)
      prmB - 処理コマンド
      intC - 加減算処理を行うための数字。0 は、BB引数の従来計算のまま。
      戻り値:
      メッセージ情報
      関連項目:
      変更履歴:
      5.5.7.2 (2012/10/09) 新規作成, 5.6.1.1 (2013/02/08) prmB処理を、calendarCalc メソッドへ移動, 5.7.4.1 (2014/03/14) CC 引数を拡張, 6.4.3.3 (2016/03/04) Map#getOrDefault で対応する。, 7.0.1.1 (2018/10/22) DATE.DIFF 追加, 7.0.1.3 (2018/11/12) BB 引数に NO追加, 8.0.1.2 (2021/11/19) 日付フォーマット(key引数)に、\\n文字列が含まれる場合、変換しておきます。, 8.5.3.2 (2023/10/13) JDK21対応。 警告: [deprecation] LocaleのLocale(String,String,String)は推奨されません
      このメソッドは、nullを返しません
    • newCalendar

      public static Calendar newCalendar(String prmB)
      指定のの文字列から、カレンダオブジェクトを作成します。 基準となる日付に計算した結果を反映させます。 prmB は、日付についての加減算処理を行うためのコマンドを指定します。 ・数字 :HHMM 形式の時分です。 ・H1 ~ HXXX :現在時刻に数字部分を+-します。分は0に初期化されます。
      パラメータ:
      prmB - 処理コマンド
      戻り値:
      カレンダオブジェクト
      変更履歴:
      8.5.4.2 (2024/01/12) Calendar インスタンスの作成方法変更( HybsDateUtil.newCalendar( String ) に移行
    • calendarCalc

      public static void calendarCalc(Calendar now, String prmB)
      開始前設定値、または 終了後設定値の文字列から、オプション文字列を合成します。 基準となる日付に計算した結果を反映させます。 CC引数の加減算パラメータは、0 です。
      パラメータ:
      now - 基準となる日付(Calendarオブジェクト)
      prmB - 処理コマンド
      変更履歴:
      5.7.4.1 (2014/03/14) CC 引数を拡張するため、旧メソッドを再現しておきます。
    • calendarCalc

      public static void calendarCalc(Calendar now, String prmB, int intC)
      開始前設定値、または 終了後設定値の文字列から、オプション文字列を合成します。 基準となる日付に計算した結果を反映させます。 prmB は、日付についての加減算処理を行うためのコマンドを指定します。 ・SY :当年の最初の日付にセットします。(当年1月1日)。CC引数は、-N:N年前、0:当年(=SY)、N:N年後 6.9.2.1 (2018/03/12) ・SD :当月の最初の日付にセットします。(当月1日)。CC引数は、-N:N月前、0:当月(=SD)、N:N月後、-1:BSD と同じ、1:ASD と同じ ・SW :日付処理の週初め(月曜日)にセットします。日付は当日より前に移動します。CC引数は、-N:N週前、0:今週(=SW)、N:N週後 ・SH :指定の最初の時にセットします。(分秒を0000にする)。CC引数は、時の倍数(4と指定すれば、4時間単位に前に戻る) 6.7.4.1 (2017/02/17) ・SM :指定の最初の分にセットします。(秒を00にする)。CC引数は、分の倍数(15と指定すれば、15分単位に前に戻る) 6.7.4.1 (2017/02/17) ・SS :指定の最初の秒にセットします。CC引数は、秒の倍数(15と指定すれば、15秒単位に前に戻る) 6.7.4.1 (2017/02/17) ・EY :当年の最後の日付にセットします。(当年年末)。CC引数は、-N:N年前、0:当年(=EY)、N:N年後 6.9.2.1 (2018/03/12) ・ED :当月の最後の日付にセットします。(当月月末)。CC引数は、-N:N月前、0:当月(=ED)、N:N月後、-1:BED と同じ、1:AED と同じ ・EW :日付処理の週末(日曜日)にセットします。日付は当日より後ろに移動します。CC引数は、-N:N週前、0:今週(=EW)、N:N週後 ・EH :指定の次の時にセットします。(分秒を0000にした次の時)。CC引数は、時の倍数(4と指定すれば、4時間単位に前に進む) 6.7.4.1 (2017/02/17) ・EM :指定の次の分にセットします。(秒を00にした次の分)。CC引数は、分の倍数(15と指定すれば、15分単位に前に進む) 6.7.4.1 (2017/02/17) ・ES :指定の次の秒にセットします。CC引数は、秒の倍数(15と指定すれば、15秒単位に前に進む) 6.7.4.1 (2017/02/17) ・M1 ~ MXXX :月を指定の分だけ進めます。M1なら翌月、M6 なら半年後 ・D1 ~ DXXX :日を指定の分だけ進めます。D1なら翌日、D200 なら200日後 ・H1 ~ HXXX :時を指定の分だけ進めます。H1なら1時間後、H24 なら24時間後(5.5.5.6 (2012/08/31) 追加) ・MI :分を指定の分だけ進めます。第四引数(intC) で、時間を指定します。(6.8.4.1 (2017/12/18) 追加) ・YMD :CC 引数のYMD表記の日付を加減算します。6.8.4.1 (2017/12/18) 追加 ・HM :CC 引数のHM表記の時刻を加減算します。6.8.4.1 (2017/12/18) 追加 ・NO :AA 引数がnullの場合、現在時刻ではなく空文字列にします。 7.0.1.3 (2018/11/12) 追加 ・(有閑)BSD :先月の最初の日付にセットします。(先月1日)(5.5.5.2 追加)。SD-1 と同等 ・(有閑)BED :先月の最後の日付にセットします。(先月月末)(5.5.5.2 追加)。ED-1 と同等 ・(有閑)ASD :翌月の最初の日付にセットします。(翌月1日)(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 引数は、加算されます。 6.8.4.1 (2017/12/18) BB 引数に、HM を指定した場合、時分のデータを加算します。この場合、時に関しては、24時間を越える 場合は、日付に加算されます。例えば、翌朝の6時を指定する場合、3000 と指定することで、1日+0600 となります。
      パラメータ:
      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 引数追加, 6.7.4.1 (2017/02/17) SH,SM,SS,EH,EM,ES 追加, 6.8.4.1 (2017/12/18) YMD , HM , MI 追加, 6.9.2.1 (2018/03/12) 年関連の機能(Y4,SY,EY)追加, 7.0.1.3 (2018/11/12) BB 引数に NO追加
    • calendarDiff

      public static String calendarDiff(Calendar timeA, String prmB, int intC)
      日付の差分を求めます。 timeA - timeB を求め、intCの数値で単位を指定します。 intC は、1:年 2:月 3:日 4:時 5:分 6:秒 に換算した単位での差分になります。 端数は出ません。
      パラメータ:
      timeA - 基準となる日付(Calendarオブジェクト)
      prmB - 日付データになります。AA-BB の関係です。
      intC - 差分の単位を指定するキーワード(1:年 2:月 3:日 4:時 5:分 6:秒 に換算)
      戻り値:
      指定の時間の差(timeA - timeB マイナスもある)
      変更履歴:
      7.0.1.1 (2018/10/22) DATE.DIFF 追加, 7.2.9.4 (2020/11/20) spotbugs:switch 文の2つの case のために同じコードを使用しているメソッド, 8.5.5.1 (2024/02/29) switch式の使用
    • getCalendar

      public static Calendar getCalendar(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 と ゼロ文字列を判定する。
      このメソッドは、nullを返しません
    • getDatePlus

      public static String getDatePlus(String baseDate, int plus)
      指定の引数の日付け文字列(yyyyMMdd)より、日付を加算して返します。 マイナスを与えると、減算します。 日付以上の精度の文字列を渡しても、日付のみの計算となります。 結果は、引数の日付フォーマットとは全く別で、yyyyMMdd の8文字形式になります。 引数に null を渡すと、実行時の日付をベースとして処理します。
      パラメータ:
      baseDate - 日付け文字列(yyyyMMdd)
      plus - 加算する日数(過去にするにはマイナス値を指定する)
      戻り値:
      結果の日付(yyyyMMdd)
      変更履歴:
      5.5.7.2 (2012/10/09) 新規作成
      このメソッドは、nullを返しません
    • getMonthPlus

      public static String getMonthPlus(String baseDate, int plus)
      現在の月に、指定の月数をプラスした日付文字列を返します。 日付文字列のフォーマットは、"yyyyMM" です。 指定する月数にマイナスを指定すると、減算できます。
      パラメータ:
      baseDate - 日付け文字列(yyyyMM)
      plus - 加算する月数(過去にするにはマイナス値を指定する)
      戻り値:
      指定の月数をプラスした日付文字列(yyyyMM)
      変更履歴:
      5.5.7.2 (2012/10/09) 新規作成
      このメソッドは、nullを返しません
    • getDatePlus

      public static String getDatePlus(String baseDate, String plus, int defTani, 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)
      例外:
      NumberFormatException - 加算する日数の単位が('y','M','d','H','m','s')以外の場合。
      変更履歴:
      5.6.1.0 (2013/02/01) 新規作成, 8.5.5.1 (2024/02/29) switch式の使用
      このメソッドは、nullを返しません
    • toYmd

      public static String toYmd(String ymd, String format)
      指定の日付文字列を指定の形式の文字列に変換します。 入力の日付文字列は、"yyyyMMddHHmmss" または、 "yyyyMMdd" です。 記号が入っている場合でも、一応処理します。 指定のフォーマットも、同様に、yyyyMMddHHmmss 形式で指定します。
      パラメータ:
      ymd - 日付け文字列(yyyyMM)
      format - 加算する月数(過去にするにはマイナス値を指定する)
      戻り値:
      指定の日付文字列を指定の形式の文字列に変換
      変更履歴:
      7.0.1.2 (2018/11/04) 新規登録
      このメソッドは、nullを返しません
    • stepYM

      public static String[] stepYM(String begin, String end, int step)
      指定の年月文字列のFrom-Toを、文字列の配列で返します。 "yyyyMM" 形式の範囲内の文字列配列を作成します。 ※ endがnullの場合は、beginそのものを配列にセットして返します。 つまり、1件のみの配列になります。 ※ end == beginの場合は、配列は、ゼロ個の配列になります。
      パラメータ:
      begin - 開始の年月(含む)
      end - 終了の年月(含まない)
      step - 加算する月数
      戻り値:
      指定の年月文字列のFrom-Toを、文字列の配列で返す
      変更履歴:
      7.0.5.0 (2019/09/09) 新規追加
      このメソッドは、nullを返しません