Java获取当前年月日

这段Java代码展示了如何获取当前月的第一天、最后一天以及前天的日期,同时也提供了获取任意月份第一天和最后一天的方法。通过`Calendar`类和`SimpleDateFormat`类进行日期处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
  * 获取当前月第一天   
  * @param firstDay       
  */  
 public static String getFirstDay(){  
  String first = null;
  try {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
         Calendar c = Calendar.getInstance(); //获取当前月第一天  
         c.add(Calendar.MONTH, 0);  
         c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 
         first = format.format(c.getTime());       
  } catch (Exception e) {
     e.printStackTrace();
  }
        return first;   
 }
 
 /**
  * 获取当前月最后一天 减一天
  * @return
  */
 public static String getLastDay(){
  String last = null;
  try {
     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
     Calendar ca = Calendar.getInstance();
     ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)-1);
     last = format.format(ca.getTime());
  } catch (Exception e) {
     e.printStackTrace();
  }
  return last;
 }
 
 /**
  * 获取当前月前天日期   
  * @return
  */
 public static String getBeforeDate(){
  String strDate = "";
  try {
     Date date = new Date(System.currentTimeMillis() - (86400000)); 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     strDate = sdf.format(date);   
  } catch (Exception e) {
     e.printStackTrace();     
  }
  return strDate;
 }
 
 /**
  * 获取某月第一天
  * @param month
  * @return
  */
 public static String getFirtDayOfMonth(int month){
  String firtDayOfMonth = null;
  try {
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      Calendar cal = Calendar.getInstance();
      //设置月份
      cal.set(Calendar.MONTH, month-1);
      //获取某月最大天数
      int lastDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
      //设置日历中月份的最大天数
      cal.set(Calendar.DAY_OF_MONTH, lastDay);
      firtDayOfMonth = sdf.format(cal.getTime());
  } catch (Exception e) {
     e.printStackTrace();  
  }
        return firtDayOfMonth; 
 }
 
 /**
  * 获取某月最后一天
  * @param month
  * @return      
  */
 public static String getLastDayOfMonth(int month){
  String lastDayOfMonth = null;
  try {
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      Calendar cal = Calendar.getInstance();
       //设置月份
       cal.set(Calendar.MONTH, month-1);
       //获取某月最大天数
       int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
       //设置日历中月份的最大天数
       cal.set(Calendar.DAY_OF_MONTH, lastDay);
       lastDayOfMonth = sdf.format(cal.getTime());
  } catch (Exception e) {
       e.printStackTrace();
  }
       return lastDayOfMonth; 
 }

 public static void main(String[] args) {
       System.out.println("获取当前月第一天 : "+getFirstDay());
       System.out.println("获取当前月最后一天减一天 : "+getLastDay());
       System.out.println("获取当前月前天日期 : "+getBeforeDate());
       System.out.println("获取某月第一天 : "+getFirtDayOfMonth(8));
       System.out.println("获取某月最后一天 : "+getLastDayOfMonth(8));
 }

输出结果:

       获取当前月第一天 : 2016-08-01
       获取当前月最后一天减一天 : 2016-08-30
       获取当前月前天日期 : 2016-08-25
       获取某月第一天 : 2016-08-01
       获取某月最后一天 : 2016-08-31

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值