指定した日付文字列(YYYYMMDD)の月初日を取得する共通関数です。
結果は日付文字列(YYYYMMDD)で返ります。
サンプルメソッド
例)日付文字列(YYYYMMDD)の月初日を取得する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import java.text.SimpleDateFormat; import java.util.Date; /** * 日付文字列(YYYYMMDD)の月初日を取得する * @param ymd 日付文字列(YYYYMMDD) * @return 結果日付文字列 */ public static String getFirstYmd(String ymd){ try{ //日付チェック SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); sdf.setLenient(false); sdf.parse(ymd); //年・月を取得する int y = Integer.parseInt(ymd.substring(0,4)); int m = Integer.parseInt(ymd.substring(4,6)); //取得した年月の最終年月日を取得する Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, y); cal.set(Calendar.MONTH, m-1); cal.set(Calendar.DAY_OF_MONTH, 1); //YYYYMMDD形式にして変換して返す return sdf.format(cal.getTime()); }catch(Exception ex){ return null; } } |
- (実行例)
- getFirstYmd("20180410") ⇒"20180401" getFirstYmd("20180228") ⇒"20180201" getFirstYmd("20180499") ⇒null
メモ
- 引数がYYYYMMDD形式の日付文字列でない場合はnullが返ります。