Java8のLocalDateクラスを利用して指定日付の月末月初を求めます。
// フォーマット DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd"); // 月初 LocalDate ldFirst = LocalDate.parse("20181015", dtf).withDayOfMonth(1); // 月末 LocalDate ldLast = LocalDate.parse("20181015", dtf).withDayOfMonth(1).plusMonth(1).minusDays(1); // 文字列変換 String strFirst = dtf.format(ldFirst); String strLast = dtf.format(ldLast);