【无标题】

java获取今日、昨日、上月(今日)、上月第一天等常用方法

public class DateUtils {
public static void main(String[] args) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    System.out.println("今天日期:"+sdf.format(new Date()));
    System.out.println("昨天日期:"+getYesterdayYmd());
    System.out.println("上月时间:"+getBeforeMonth());
    System.out.println("上个月第一天:"+ getBeforeFirstMonthdate());
    System.out.println("上个月最后一天:"+getBeforeLastMonthdate());
    System.out.println("上周的开始时间:"+getBeginDayOfLastWeek() );
    System.out.println("上周的结束时间:"+getEndDayOfLastWeek());
}
// 获取上周的开始时间
public static String getBeginDayOfLastWeek() {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date date = new Date();
    if (date == null) {
        return null;
    }
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
    if (dayofweek == 1) {
        dayofweek += 7;
    }
    cal.add(Calendar.DATE, 2 - dayofweek - 7);
    return sdf.format(cal.getTime());
}

// 获取上周的结束时间
public static String getEndDayOfLastWeek()  {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Calendar cal = Calendar.getInstance();
    try {
        cal.setTime(sdf.parse(getBeginDayOfLastWeek()) );
    }catch (ParseException parseException){

    }
    cal.add(Calendar.DAY_OF_WEEK, 6);
    Date weekEndSta = cal.getTime();
    return sdf.format(weekEndSta) ;
}


//4、获取上个月的第一天
public static String getBeforeFirstMonthdate(){
    SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
    Calendar calendar=Calendar.getInstance();
    calendar.add(Calendar.MONTH, -1);
    calendar.set(Calendar.DAY_OF_MONTH, 1);
    return format.format(calendar.getTime());
}
//5、获取上个月的最后一天
public static String getBeforeLastMonthdate(){
    SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
    Calendar calendar=Calendar.getInstance();
    int month=calendar.get(Calendar.MONTH);
    calendar.set(Calendar.MONTH, month-1);
    calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
    return sf.format(calendar.getTime());
}

//获取昨天日期 年月日
public static Map<String,String> getYesterdayYmd() {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Calendar cal = new GregorianCalendar();
    cal.set(Calendar.HOUR_OF_DAY, 0);
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    cal.add(Calendar.DAY_OF_MONTH, -1);
    Map<String,String> map=new HashMap();
    if(isLastDayOfMonth(cal.getTime())){
        //是当月最后一天
        map.put("isFor","0");
        map.put("date",sdf.format(cal.getTime()));
    }else{
        //不是当月最后一天
        map.put("isFor","1");
        map.put("date",sdf.format(cal.getTime()));
    }
    return map;
}
/**
 * 判断给定日期是否是当月的最后一天
 * @param date
 * @return
 */
public static boolean isLastDayOfMonth(Date date) {
    //1、创建日历类
    Calendar calendar = Calendar.getInstance();
    //2、设置当前传递的时间,不设就是当前系统日期
    calendar.setTime(date);
    //3、data的日期是N,那么N+1【假设当月是30天,30+1=31,如果当月只有30天,那么最终结果为1,也就是下月的1号】
    calendar.set(Calendar.DATE, (calendar.get(Calendar.DATE) + 1));
    //4、判断是否是当月最后一天【1==1那么就表明当天是当月的最后一天返回true】
    if (calendar.get(Calendar.DAY_OF_MONTH) == 1) {
        return true;
    }else{
        return false;
    }
}
/**
 * 获取上个月日期   yyyy-MM-dd 格式
 * @return
 */
public static String getBeforeMonth(){
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//定义日期显示格式
    Calendar c = Calendar.getInstance();
    c.add(Calendar.MONTH, -1);
    //        上个月时间
    String before = sdf.format(c.getTime());
    return before;
}
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值