前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java获取当前时间详解

Java获取当前时间详解

作者头像
botkenni
发布2019-11-13 10:38:49
1.4K0
发布2019-11-13 10:38:49
举报
文章被收录于专栏:IT码农

Java获取当前时间详解的上一个月和下一个月,第一天和最后一天,任意时间的第一天和最后一天,任意时间上一个月和下一个月详解

代码语言:javascript
复制
/** 
     * 获取当前时间 
     *  
     * @param args 
     */ 
    public static String getNowTime() { 
        Calendar cal = Calendar.getInstance(); 
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
        String lastMonth = dft.format(cal.getTime()); 
        return lastMonth; 
    } 
 
    /** 
     * 判断当天是否为本月第一天 
     *  
     * @return 
     */ 
    public static boolean isFirstDayOfMonth() { 
        boolean flag = false; 
        Calendar calendar = Calendar.getInstance(); 
        int today = calendar.get(calendar.DAY_OF_MONTH); 
        if (1 == today) { 
            flag = true; 
        } 
        return flag; 
    } 
 
    /** 
     * 获取当前月份最后一天 
     *  
     * @param date 
     * @return 
     * @throws ParseException 
     */ 
    public static String getMaxMonthDate() { 
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
        Calendar calendar = Calendar.getInstance(); 
        calendar.setTime(new Date()); 
        // calendar.add(Calendar.MONTH, -1); 
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 
        return dft.format(calendar.getTime()); 
    } 
 
    /** 
     *  
     * 描述:获取下一个月的第一天. 
     *  
     * @return 
     */ 
    public static String getPerFirstDayOfMonth() { 
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
        Calendar calendar = Calendar.getInstance(); 
        calendar.add(Calendar.MONTH, 1); 
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); 
        return dft.format(calendar.getTime()); 
    } 
 
    /** 
     *  
     * 描述:获取上个月的最后一天. 
     *  
     * @return 
     */ 
    public static String getLastMaxMonthDate() { 
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
        Calendar calendar = Calendar.getInstance(); 
        calendar.setTime(new Date()); 
        calendar.add(Calendar.MONTH, -1); 
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 
        return dft.format(calendar.getTime()); 
    } 
 
    /** 
     * 获取上一个月 
     *  
     * @return 
     */ 
    public static String getLastMonth() { 
        Calendar cal = Calendar.getInstance(); 
        cal.add(cal.MONTH, -1); 
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMM"); 
        String lastMonth = dft.format(cal.getTime()); 
        return lastMonth; 
    } 
 
    /** 
     *  
     * 描述:获取下一个月. 
     *  
     * @return 
     */ 
    public static String getPreMonth() { 
        Calendar cal = Calendar.getInstance(); 
        cal.add(cal.MONTH, 1); 
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMM"); 
        String preMonth = dft.format(cal.getTime()); 
        return preMonth; 
    } 
 
// 是否是最后一天 
    public static boolean isLastDayOfMonth() { 
        boolean flag = false; 
        if (StringUtils.isNotBlank(getNowTime()) && StringUtils.isNotBlank(getMaxMonthDate()) && StringUtils.equals(getNowTime(), getMaxMonthDate())) { // getMaxMonthDate().equals(getNowTime()) 
            flag = true; 
        } 
        return flag; 
    } 
     
    /** 
     * 获取任意时间的下一个月 
     * 描述:<描述函数实现的功能>. 
     * @param repeatDate 
     * @return 
     */ 
    public static String getPreMonth(String repeatDate) { 
        String lastMonth = ""; 
        Calendar cal = Calendar.getInstance(); 
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMM"); 
        int year = Integer.parseInt(repeatDate.substring(0, 4)); 
        String monthsString = repeatDate.substring(4, 6); 
        int month; 
        if ("0".equals(monthsString.substring(0, 1))) { 
            month = Integer.parseInt(monthsString.substring(1, 2)); 
        } else { 
            month = Integer.parseInt(monthsString.substring(0, 2)); 
        } 
        cal.set(year,month,Calendar.DATE); 
        lastMonth = dft.format(cal.getTime()); 
        return lastMonth; 
    } 
     
    /** 
     * 获取任意时间的上一个月 
     * 描述:<描述函数实现的功能>. 
     * @param repeatDate 
     * @return 
     */ 
    public static String getLastMonth(String repeatDate) { 
        String lastMonth = ""; 
        Calendar cal = Calendar.getInstance(); 
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMM"); 
        int year = Integer.parseInt(repeatDate.substring(0, 4)); 
        String monthsString = repeatDate.substring(4, 6); 
        int month; 
        if ("0".equals(monthsString.substring(0, 1))) { 
            month = Integer.parseInt(monthsString.substring(1, 2)); 
        } else { 
            month = Integer.parseInt(monthsString.substring(0, 2)); 
        } 
        cal.set(year,month-2,Calendar.DATE); 
        lastMonth = dft.format(cal.getTime()); 
        return lastMonth; 
    } 
     // 
    /** 
     * 获取任意时间的月的最后一天 
     * 描述:<描述函数实现的功能>. 
     * @param repeatDate 
     * @return 
     */ 
    private static String getMaxMonthDate(String repeatDate) { 
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
        Calendar calendar = Calendar.getInstance(); 
        try { 
            if(StringUtils.isNotBlank(repeatDate) && !"null".equals(repeatDate)){ 
                calendar.setTime(dft.parse(repeatDate)); 
            } 
        } catch (ParseException e) { 
            e.printStackTrace(); 
        } 
        // calendar.add(Calendar.MONTH, -1); 
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); 
        return dft.format(calendar.getTime()); 
    } 
     
    /** 
     * 获取任意时间的月第一天 
     * 描述:<描述函数实现的功能>. 
     * @param repeatDate 
     * @return 
     */ 
    private static String getMinMonthDate(String repeatDate){ 
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
        Calendar calendar = Calendar.getInstance(); 
        try { 
            if(StringUtils.isNotBlank(repeatDate) && !"null".equals(repeatDate)){ 
                calendar.setTime(dft.parse(repeatDate)); 
            } 
        } catch (ParseException e) { 
            e.printStackTrace(); 
        } 
        // calendar.add(Calendar.MONTH, -1); 
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); 
       return dft.format(calendar.getTime());         
    } 
/** 
     * 不论是当前时间,还是历史时间  皆是时间点的前天 
     * repeatDate  任意时间 
     */ 
    public static String getModify2DaysAgo(String repeatDate) { 
        Calendar cal = Calendar.getInstance(); 
        String daysAgo = ""; 
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
        if (repeatDate == null || "".equals(repeatDate)) { 
            cal.set(Calendar.DATE, cal.get(Calendar.DATE) - 2); 
 
        } else { 
            int year = Integer.parseInt(repeatDate.substring(0, 4)); 
            String monthsString = repeatDate.substring(4, 6); 
            int month; 
            if ("0".equals(monthsString.substring(0, 1))) { 
                month = Integer.parseInt(monthsString.substring(1, 2)); 
            } else { 
                month = Integer.parseInt(monthsString.substring(0, 2)); 
            } 
            String dateString = repeatDate.substring(6, 8); 
            int date; 
            if ("0".equals(dateString.subSequence(0, 1))) { 
                date = Integer.parseInt(dateString.substring(1, 2)); 
            } else { 
                date = Integer.parseInt(dateString.substring(0, 2)); 
            } 
            cal.set(year, month-1, date - 1); 
            System.out.println(dft.format(cal.getTime())); 
        } 
        daysAgo = dft.format(cal.getTime()); 
        return daysAgo; 
    } 
     
    /** 
     * 不论是当前时间,还是历史时间  皆是时间点的T-N天 
    * repeatDate 任意时间    param 数字 可以表示前几天 
     */ 
    public static String getModifyNumDaysAgo(String repeatDate,int param) { 
        Calendar cal = Calendar.getInstance(); 
        String daysAgo = ""; 
        SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); 
        if (repeatDate == null || "".equals(repeatDate)) { 
            cal.set(Calendar.DATE, cal.get(Calendar.DATE) - param); 
 
        } else { 
            int year = Integer.parseInt(repeatDate.substring(0, 4)); 
            String monthsString = repeatDate.substring(4, 6); 
            int month; 
            if ("0".equals(monthsString.substring(0, 1))) { 
                month = Integer.parseInt(monthsString.substring(1, 2)); 
            } else { 
                month = Integer.parseInt(monthsString.substring(0, 2)); 
            } 
            String dateString = repeatDate.substring(6, 8); 
            int date; 
            if ("0".equals(dateString.subSequence(0, 1))) { 
                date = Integer.parseInt(dateString.substring(1, 2)); 
            } else { 
                date = Integer.parseInt(dateString.substring(0, 2)); 
            } 
            cal.set(year, month-1, date - param+1); 
            System.out.println(dft.format(cal.getTime())); 
        } 
        daysAgo = dft.format(cal.getTime()); 
        return daysAgo; 
    } 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档