public final class DateUtil
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
addDay(java.lang.String date,
int days)
指定された日付(yyyyMMdd形式)を指定された日数分加減算する。
負の値が指定された場合は、減算を行う。 例)addDay("19991231", 1) //--> "20000101" |
static java.lang.String |
addMonth(java.lang.String date,
int month)
指定された日付(yyyyMMdd or yyyyMM形式)を指定された月数分加減算する。
負の値が指定された場合は、減算を行う。 例)addMonth("19991231", 1) //--> "20000131" |
static java.lang.String |
formatDate(java.util.Date date,
java.lang.String format)
このメソッドは
ThreadContext から取得したロケールを指定して
formatDate(Date, String, Locale) を呼び出す。 |
static java.lang.String |
formatDate(java.util.Date date,
java.lang.String format,
java.util.Locale locale)
指定されたフォーマットとロケールを使用して日付を変換する。
指定するフォーマットは
SimpleDateFormat の仕様に準拠すること。
例:
|
static java.lang.String |
formatDate(java.lang.String date,
java.lang.String pattern)
日付文字列(yyyyMMdd形式)を指定された形式でフォーマットする。
|
static java.util.Date |
getDate(java.lang.String date)
日付文字列(yyyyMMdd形式)から
Date クラスのインスタンスを取得する。 |
static long |
getDays(java.lang.String dateFrom,
java.lang.String dateTo)
指定された日付間の日数を取得する。
例)getDays("19991231", "20000101") //--> 1 |
static java.lang.String |
getMonthEndDate(java.lang.String date)
指定された日付(yyyyMMdd or yyyyMM形式)の月末日を取得する。
|
static int |
getMonths(java.lang.String monthFrom,
java.lang.String monthTo)
指定された日付(yyyyMMdd or yyyyMM形式)間の月数を取得する。
例)
DateUtil.getMonths("201102", "201103"); //--> 1
|
static java.lang.String |
getNumbersOnlyFormat(java.lang.String yyyyMMddFormat)
フォーマット文字列から年月日の区切り文字を取り除いた値を返す。
|
static java.util.Date |
getParsedDate(java.lang.String date,
java.lang.String format)
このメソッドはロケールに
Locale.getDefault() を使用して getParsedDate(String, String, Locale) を呼び出す。 |
static java.util.Date |
getParsedDate(java.lang.String date,
java.lang.String format,
java.util.Locale locale)
dateをformat形式でパースした結果の
Date インスタンスを返却する。
dateがformat形式ではない場合、または実在しない日付である場合、null を返却する。
例) |
static boolean |
isValid(java.lang.String date,
java.lang.String format)
|
static boolean |
isValid(java.lang.String date,
java.lang.String format,
java.util.Locale locale)
指定された日付文字列がフォーマットどおりであり、実在する日であることをバリデーションする。
フォーマットには SimpleDateFormat にて定められたフォーマットを指定する。
例)
|
@Published public static java.util.Date getDate(java.lang.String date)
Date
クラスのインスタンスを取得する。date
- 日付文字列(yyyyMMdd形式)Date
クラスのインスタンスjava.lang.IllegalArgumentException
- 日付文字列のフォーマットが yyyyMMdd形式ではなかった場合@Published public static java.lang.String formatDate(java.lang.String date, java.lang.String pattern)
date
- フォーマット対象の日付文字列(yyyyMMdd形式)pattern
- 日付のフォーマットを記述するパターン(yyyy/MM/ddなど。SimpleDateFormat
参照)java.lang.IllegalArgumentException
- 日付文字列のフォーマットが yyyyMMdd形式ではなかった場合@Published public static java.lang.String addDay(java.lang.String date, int days)
date
- 日付文字列(yyyyMMdd形式)days
- 加減算する日数(負の値の場合は、減算を行う。)@Published public static java.lang.String addMonth(java.lang.String date, int month)
date
- 日付文字列(yyyyMMdd or yyyyMM形式)month
- 加減算する月数(負の値の場合は、減算を行う。)@Published public static long getDays(java.lang.String dateFrom, java.lang.String dateTo)
dateFrom
- 開始日付文字列(yyyyMMdd形式)dateTo
- 終了日付文字列(yyyyMMdd形式)@Published public static int getMonths(java.lang.String monthFrom, java.lang.String monthTo)
DateUtil.getMonths("201102", "201103"); //--> 1
monthFrom
- 開始日付文字列(yyyyMMdd or yyyyMM形式)monthTo
- 終了日付文字列(yyyyMMdd or yyyyMM形式)@Published public static java.lang.String getMonthEndDate(java.lang.String date)
date
- 日付(yyyyMMdd or yyyyMM形式)@Published public static boolean isValid(java.lang.String date, java.lang.String format)
date
- バリデーション対象日付文字列format
- フォーマットtrue
java.lang.IllegalArgumentException
- dateがnull
か、formatがnull
または空文字の場合@Published public static boolean isValid(java.lang.String date, java.lang.String format, java.util.Locale locale)
SimpleDateFormat
にて定められたフォーマットを指定する。
例)
//2016年3月31日は存在するため、true。
DateUtil.isValid("20160331", "yyyyMMdd"); //--> true
//2016年3月32日は存在しないため、false。
DateUtil.isValid("20160332", "yyyyMMdd"); //--> false
date
- バリデーション対象日付文字列format
- フォーマットlocale
- フォーマットに使用するロケールtrue
java.lang.IllegalArgumentException
- dateがnull
か、formatがnull
または空文字の場合@Published(tag="architect") public static java.util.Date getParsedDate(java.lang.String date, java.lang.String format)
Locale.getDefault()
を使用して getParsedDate(String, String, Locale)
を呼び出す。date
- パース対象日付文字列format
- 日付文字列フォーマットDate
インスタンスjava.lang.IllegalArgumentException
- dateがnull
か、formatがnull
または空文字の場合@Published(tag="architect") public static java.util.Date getParsedDate(java.lang.String date, java.lang.String format, java.util.Locale locale)
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
date
- パース対象日付文字列format
- 日付文字列フォーマットlocale
- フォーマットに使用するロケールDate
インスタンスjava.lang.IllegalArgumentException
- dateがnull
か、formatがnull
または空文字の場合@Published(tag="architect") public static java.lang.String getNumbersOnlyFormat(java.lang.String yyyyMMddFormat)
フォーマットのパターン文字は、y(年)、M(月)、d(月における日)のみ指定可能。 フォーマット文字列に年月日の区切り文字が含まれない場合はnull
を返す。 下記に「フォーマット文字列 //--> 戻り値」形式で例を示す。 "yyyy/MM/dd" //--> "yyyyMMdd" "yyyy-MM-dd" //--> "yyyyMMdd" "MM/dd/yyyy" //--> "MMddyyyy" "yyyyMMdd" //-->null
yyyyMMddFormat
- フォーマット文字列@Published(tag="architect") public static java.lang.String formatDate(java.util.Date date, java.lang.String format)
ThreadContext
から取得したロケールを指定して
formatDate(Date, String, Locale)
を呼び出す。date
- 日付(null
不可)format
- フォーマット(null
不可)@Published(tag="architect") public static java.lang.String formatDate(java.util.Date date, java.lang.String format, java.util.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
date
- 日付format
- フォーマットlocale
- ロケールjava.lang.IllegalArgumentException
- 日付、フォーマット、ロケールがnull
の場合、または日付の変換に失敗した場合