Java获取指定月份的最后一天

我不是女神ヾ 2022-03-31 06:46 4825阅读 0赞
  1. import java.text.SimpleDateFormat;
  2. import java.util.Calendar;
  3. public class DUtil {
  4. public static String getLastDayOfMonth(String yearMonth) {
  5. int year = Integer.parseInt(yearMonth.split("-")[0]); //年
  6. int month = Integer.parseInt(yearMonth.split("-")[1]); //月
  7. Calendar cal = Calendar.getInstance();
  8. // 设置年份
  9. cal.set(Calendar.YEAR, year);
  10. // 设置月份
  11. // cal.set(Calendar.MONTH, month - 1);
  12. cal.set(Calendar.MONTH, month); //设置当前月的上一个月
  13. // 获取某月最大天数
  14. //int lastDay = cal.getActualMaximum(Calendar.DATE);
  15. int lastDay = cal.getMinimum(Calendar.DATE); //获取月份中的最小值,即第一天
  16. // 设置日历中月份的最大天数
  17. //cal.set(Calendar.DAY_OF_MONTH, lastDay);
  18. cal.set(Calendar.DAY_OF_MONTH, lastDay - 1); //上月的第一天减去1就是当月的最后一天
  19. // 格式化日期
  20. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  21. return sdf.format(cal.getTime());
  22. }
  23. public static void main(String[] args) {
  24. System.out.println(getLastDayOfMonth("2019-02"));
  25. }
  26. }

输出:

  1. 2019-02-28

PS:2月份获取的最后一天日期不对,抱歉,已改正。
修改为:用当前月的上个月的第一天减去1就是当月的最后一天。
更正:2019-11-29

作者:itmyhome

发表评论

表情:
评论列表 (有 0 条评论,4825人围观)

还没有评论,来说两句吧...

相关阅读