java日期常用封装

public class DateUtil {

    public DateUtil() {

    }

    /***
     * 这里进行对自己进行正则表达
     * @param oriStr
     * @return
     */
    public static String filterDistrictName(String oriStr) {

        if (!oriStr.endsWith("自治县") && oriStr.length() > 2) {
            String result = oriStr.replaceAll("(市|地区|县|市市辖区)$", "");
            return result;
        } else {
            return oriStr;
        }

    }

    /**
     * 测试用
     * @param args
     * @throws ParseException
     */
//    public static void main(String[] args) throws ParseException {
//
//        //System.out.println(fomatDate("2013-07-08 12:22:23"));
//        //System.out.println(dateDiff("2013-06-08 12:25:23","2013-07-08 12:25:23"));
//    //    System.out.println(currentTimeDiff2("2013-12-08"));
        System.out.println(compare_date("2013-07-08 12:25:23", "2013-07-08 12:23:23"));
//        //System.out.println(fomatDate("2013-10-16 9:27:34"));
//        //System.out.println(System.currentTimeMillis());
//        //System.out.println(getTenTimestamp());
//        //System.out.println(getSixRandom());
//        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        //获取当前时间
//        Date time = Calendar.getInstance().getTime();
//        
//    //    System.out.println(simpleDateFormat.format(datePlusOrMinus("2013-10-16 9:27:34",2)));
//        
//        System.out.println(getNowYear());
//        
//        
//    }

    /**
     * 把日期格式转换为字符串格式
     * @param date
     * @return
     */
    public static String dateToString (Date date){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return simpleDateFormat.format(date);
    }
    
    /**
     * 把原始字符串扩展成自定的长度
     * @param oriStr 原始字符串
     * @param fillChar 要填充的字符
     * @param setLength 要扩展成的长度
     * @param preFill 前扩充还是后扩充 true-在前面填充,false-后面填充
     * @return
     */
    public static String fixStringToSetLength(String oriStr, String fillChar, int setLength, boolean preFill) {
        if(oriStr == null || fillChar.equals("")) {
            return oriStr;
        }

        int oriLength = oriStr.length();
        StringBuilder sb = null;
        if(preFill == true) {
            sb = new StringBuilder();
            for(int i = oriLength; i < setLength; i++) {
                sb.append(fillChar);
            }
            sb.append(oriStr);
        } else {
            sb = new StringBuilder(oriStr);
            for(int i = oriLength; i < setLength; i++) {
                sb.append(fillChar);
            }
        }

        return sb.toString();
    }



    //日期往后加多少个月,多少天,多少年
    @SuppressWarnings("static-access")
    public static String addMonth(String format,String StrDate,int year,int month,int day){

        Calendar   cal = Calendar.getInstance();
        SimpleDateFormat sFmt = new SimpleDateFormat(format);
        cal.setTime(sFmt.parse( (StrDate), new ParsePosition(0)));

        if (day != 0) {
            cal.add(cal.DATE,day);
        }
        if (month != 0) {
            cal.add(cal.MONTH, month);
        }
        if (year != 0) {
            cal.add(cal.YEAR, year);
        }
        return sFmt.format(cal.getTime());
    }
    
    public static void main(String[] args) {
//        String StrDate = "2022-10-11";
//        StrDate = addMonth("yyyy-MM-dd", StrDate, 1, 1, 1);
//        System.out.println(StrDate);
        System.out.println(getNowYear());
    }
    /**
     * 判断两个时间字符串之差
     * @param date1
     * @param date2
     * @return 毫秒数
     */
    public static Long dateDiff(String date1,String date2) {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            return df.parse(date1).getTime() - df.parse(date2).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    /**
     * 和当前时间差
     * @param date
     * @return 当前时间 - date 毫秒数
     */
    public static Long currentTimeDiff(String date) {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            return System.currentTimeMillis() -  df.parse(date).getTime();
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 和当前时间差(不需要时分秒)
     * @param date
     * @return 当前时间 - date
     *
     *      */
    public static Long currentTimeDiff2(String date) {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        try {
            return System.currentTimeMillis() -  df.parse(date).getTime();
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
    
    
    /**
     * 日期比较
     * @param DATE1
     * @param DATE2
     * @return DATE1 > DATE2 返回1
     */
    public static int compare_date(String DATE1, String DATE2) {


        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date dt1 = df.parse(DATE1);
            Date dt2 = df.parse(DATE2);
            if (dt1.getTime() > dt2.getTime()) {
                return 1;
            } else if (dt1.getTime() < dt2.getTime()) {
                return -1;
            } else {
                return 0;
            }
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return 0;
    }
    
    /**
     * 将日期yyyy-MM-dd HH:mm:ss 格式化为 yyyyMMddHHmmss
     * @param date
     * @return
     */
    public static String fomatDate(String date){
        String dateStr = null;
        if(date == null || "".equals(date)){
            dateStr = "";
        }else{
            try {
                dateStr = date.replaceAll(":", "").replaceAll("-", "").replaceAll(" ", "");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        
        return dateStr;
    }
    
    /**
     * 获取插入数据库格式的时间
     * @return
     */
    public static String getSQLDate() {
        String systemdate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
            .format(Calendar.getInstance().getTime()); // 获取系统当前时间
        return systemdate;
    }
    
    /**
     * 获取年月日格式的时间
     * @return
     */
    public static String getdayDate() {
        String systemdate = new SimpleDateFormat("yyyy-MM-dd")
            .format(Calendar.getInstance().getTime()); // 获取系统当前时间
        return systemdate;
    }
    
    /**
     * 获取年月格式的时间
     * @return
     */
    public static String getmonthDate() {
        String systemdate = new SimpleDateFormat("yyyy-MM")
            .format(Calendar.getInstance().getTime()); // 获取系统当前时间
        return systemdate;
    }
    
    /**
     * 获取当月天数
     * @return
     */
    public static int getmonthdays() {
        Calendar a = Calendar.getInstance();
        a.set(Calendar.DATE, 1);//把日期设置为当月第一天
        a.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天
        int maxDate = a.get(Calendar.DATE);
        return maxDate;
    }
    
    /**
     * 设置时间为本周星期一和星期日的日期
     * @return
     */
    public static Map getweekday(Map<String, String> paramsMap) {
        Calendar a = Calendar.getInstance();
        //当天是星期几1--7
        int dayofweek = a.get(Calendar.DAY_OF_WEEK)-1;
        if(dayofweek == 0){
            dayofweek = 7;
        }
        a.add(Calendar.DATE, -(dayofweek-1));//减去dayofweek-1天,也就是星期一
        String t1 = new SimpleDateFormat("yyyy-MM-dd").format(a.getTime());
        paramsMap.put("queryTime1", t1+" 00:00:00");
        System.out.println(t1);
        Calendar b = Calendar.getInstance();
        b.add(Calendar.DATE, 7-dayofweek);//加上7-dayofweek天,也就是星期日
        String t2 = new SimpleDateFormat("yyyy-MM-dd").format(b.getTime());
        paramsMap.put("queryTime2", t2+" 23:59:59");
        System.out.println(t2);
        
        return paramsMap;
    }
    
    
    
    /**
     * 对月份进行加减
     * @param i
     * @return
     * @throws ParseException
     */
    public static Date datePlusOrMinus(String systime ,Integer i) throws ParseException{
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date systDate =df.parse(systime);
        GregorianCalendar gc =new GregorianCalendar();
        gc.setTime(systDate);
        gc.add(2,i);
        return gc.getTime();
    }
    
    /**
     * 得到月日时分秒10位时间戳字符串
     */
    public static String getTenTimestamp() {
        String systemdate = new SimpleDateFormat("MMddHHmmss").format(Calendar.getInstance().getTime());
        return systemdate;
    }
    
    /**
     * 得到当年
     */
    public static Integer getNowYear() {
        String nowyear = new SimpleDateFormat("yyyy").format(Calendar.getInstance().getTime());
        return Integer.parseInt(nowyear);
    }
    
    /**
     * 产生6位随机数
     */
    public static String getSixRandom(){
        int random1 = (int) (Math.random() * 900000 + 100000);
        String random = String.valueOf(random1);
        return random;
    }
    /**
     * 产生2位随机数
     */
    public static String getTwoRandom(){
        int random1 = (int) (Math.random() * 90 + 10);
        String random = String.valueOf(random1);
        return random;

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuyongde0922

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值