Package nablarch.core.util
Class DateUtil
java.lang.Object
nablarch.core.util.DateUtil
日付ユーティリティ。
- Author:
- Miki Habu
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
指定された日付(yyyyMMdd形式)を指定された日数分加減算する。static String
指定された日付(yyyyMMdd or yyyyMM形式)を指定された月数分加減算する。static String
formatDate
(String date, String pattern) 日付文字列(yyyyMMdd形式)を指定された形式でフォーマットする。static String
formatDate
(Date date, String format) このメソッドはThreadContext
から取得したロケールを指定してformatDate(Date, String, Locale)
を呼び出す。static String
formatDate
(Date date, String format, Locale locale) 指定されたフォーマットとロケールを使用して日付を変換する。static Date
日付文字列(yyyyMMdd形式)からDate
クラスのインスタンスを取得する。static long
指定された日付間の日数を取得する。static String
getMonthEndDate
(String date) 指定された日付(yyyyMMdd or yyyyMM形式)の月末日を取得する。static int
指定された日付(yyyyMMdd or yyyyMM形式)間の月数を取得する。static String
getNumbersOnlyFormat
(String yyyyMMddFormat) フォーマット文字列から年月日の区切り文字を取り除いた値を返す。static Date
getParsedDate
(String date, String format) このメソッドはロケールにLocale.getDefault()
を使用してgetParsedDate(String, String, Locale)
を呼び出す。static Date
getParsedDate
(String date, String format, Locale locale) static boolean
static boolean
-
Method Details
-
getDate
日付文字列(yyyyMMdd形式)からDate
クラスのインスタンスを取得する。- Parameters:
date
- 日付文字列(yyyyMMdd形式)- Returns:
- 日付文字列の日付が設定された、
Date
クラスのインスタンス - Throws:
IllegalArgumentException
- 日付文字列のフォーマットが yyyyMMdd形式ではなかった場合
-
formatDate
日付文字列(yyyyMMdd形式)を指定された形式でフォーマットする。- Parameters:
date
- フォーマット対象の日付文字列(yyyyMMdd形式)pattern
- 日付のフォーマットを記述するパターン(yyyy/MM/ddなど。SimpleDateFormat
参照)- Returns:
- フォーマットされた日付文字列
- Throws:
IllegalArgumentException
- 日付文字列のフォーマットが yyyyMMdd形式ではなかった場合
-
addDay
指定された日付(yyyyMMdd形式)を指定された日数分加減算する。
負の値が指定された場合は、減算を行う。 例)addDay("19991231", 1) //--> "20000101"- Parameters:
date
- 日付文字列(yyyyMMdd形式)days
- 加減算する日数(負の値の場合は、減算を行う。)- Returns:
- 計算後の日付文字列(yyyyMMdd形式)
-
addMonth
指定された日付(yyyyMMdd or yyyyMM形式)を指定された月数分加減算する。
負の値が指定された場合は、減算を行う。 例)addMonth("19991231", 1) //--> "20000131"- Parameters:
date
- 日付文字列(yyyyMMdd or yyyyMM形式)month
- 加減算する月数(負の値の場合は、減算を行う。)- Returns:
- 計算後の日付文字列
-
getDays
指定された日付間の日数を取得する。
例)getDays("19991231", "20000101") //--> 1- Parameters:
dateFrom
- 開始日付文字列(yyyyMMdd形式)dateTo
- 終了日付文字列(yyyyMMdd形式)- Returns:
- 日数(同一日であれば0、 開始日付文字列 > 終了日付文字列であればマイナス値)
-
getMonths
指定された日付(yyyyMMdd or yyyyMM形式)間の月数を取得する。 例)
DateUtil.getMonths("201102", "201103"); //--> 1
- Parameters:
monthFrom
- 開始日付文字列(yyyyMMdd or yyyyMM形式)monthTo
- 終了日付文字列(yyyyMMdd or yyyyMM形式)- Returns:
- 月数(同一日であれば0、 開始日付文字列 > 終了日付文字列であればマイナス値)
-
getMonthEndDate
指定された日付(yyyyMMdd or yyyyMM形式)の月末日を取得する。- Parameters:
date
- 日付(yyyyMMdd or yyyyMM形式)- Returns:
- 指定された日付の月末日
-
isValid
- Parameters:
date
- バリデーション対象日付文字列format
- フォーマット- Returns:
- dateがformat形式で、実在する日であれば
true
- Throws:
IllegalArgumentException
- dateがnull
か、formatがnull
または空文字の場合
-
isValid
指定された日付文字列がフォーマットどおりであり、実在する日であることをバリデーションする。
フォーマットにはSimpleDateFormat
にて定められたフォーマットを指定する。 例)
//2016年3月31日は存在するため、true。 DateUtil.isValid("20160331", "yyyyMMdd"); //--> true //2016年3月32日は存在しないため、false。 DateUtil.isValid("20160332", "yyyyMMdd"); //--> false
- Parameters:
date
- バリデーション対象日付文字列format
- フォーマットlocale
- フォーマットに使用するロケール- Returns:
- dateがformat形式で、実在する日であれば
true
- Throws:
IllegalArgumentException
- dateがnull
か、formatがnull
または空文字の場合
-
getParsedDate
このメソッドはロケールにLocale.getDefault()
を使用してgetParsedDate(String, String, Locale)
を呼び出す。- Parameters:
date
- パース対象日付文字列format
- 日付文字列フォーマット- Returns:
- dateをformat形式でパースした結果の
Date
インスタンス - Throws:
IllegalArgumentException
- dateがnull
か、formatがnull
または空文字の場合
-
getParsedDate
@Published(tag="architect") public static Date getParsedDate(String date, String format, Locale locale) dateをformat形式でパースした結果のDate
インスタンスを返却する。 dateがformat形式ではない場合、または実在しない日付である場合、null
を返却する。 例)
//正常処理 DateUtil.getParsedDate("20160307160112", "yyyyMMddHHmmss", Locale.JAPANESE); // Mon Mar 07 12:12:12 JST 2016 //20160304(date)の形式が、yyyymm形式でないため、null。 DateUtil.getParsedDate("20160304", "yyyyMM", Locale.JAPANESE); //--> null //2016年3月32日が存在しない日付のため、null。 DateUtil.getParsedDate("20160332", "yyyyMMdd", Locale.JAPANESE); //--> null
- Parameters:
date
- パース対象日付文字列format
- 日付文字列フォーマットlocale
- フォーマットに使用するロケール- Returns:
- dateをformat形式でパースした結果の
Date
インスタンス - Throws:
IllegalArgumentException
- dateがnull
か、formatがnull
または空文字の場合
-
getNumbersOnlyFormat
フォーマット文字列から年月日の区切り文字を取り除いた値を返す。フォーマットのパターン文字は、y(年)、M(月)、d(月における日)のみ指定可能。 フォーマット文字列に年月日の区切り文字が含まれない場合は
null
を返す。 下記に「フォーマット文字列 //--> 戻り値」形式で例を示す。 "yyyy/MM/dd" //--> "yyyyMMdd" "yyyy-MM-dd" //--> "yyyyMMdd" "MM/dd/yyyy" //--> "MMddyyyy" "yyyyMMdd" //-->null
- Parameters:
yyyyMMddFormat
- フォーマット文字列- Returns:
- フォーマット文字列から年月日の区切り文字を取り除いた値
-
formatDate
このメソッドはThreadContext
から取得したロケールを指定してformatDate(Date, String, Locale)
を呼び出す。- Parameters:
date
- 日付(null
不可)format
- フォーマット(null
不可)- Returns:
- 変換した値
-
formatDate
@Published(tag="architect") public static String formatDate(Date date, String format, Locale locale) 指定されたフォーマットとロケールを使用して日付を変換する。 指定するフォーマットはSimpleDateFormat
の仕様に準拠すること。 例:Date date = Calendar.getInstance().getTime(); //--> 2012/11/13 I18NUtil.formatDate(date, "yyyy/MMM/dd", Locale.JAPANESE); //--> 2012/11/13 I18NUtil.formatDate(date, "dd MMM yyyy", Locale.ENGLISH); //--> 13 Nov 2012
- Parameters:
date
- 日付format
- フォーマットlocale
- ロケール- Returns:
- 変換した値
- Throws:
IllegalArgumentException
- 日付、フォーマット、ロケールがnull
の場合、または日付の変換に失敗した場合
-