Java中Date()getMonth()getYear()提示过时警告

Date日期类中的getMonth()与getYear()提示过时警告,这里的警告是方法过时,不建议使用

解决方法1:使用Calendar类

SimpleDateFormat ft = new SimpleDateFormat("yyyyMMdd");
Calendar calender = Calendar.getInstance();
Date date = new Date();
calender.setTime(date);
System.out.println(ft.format(calender.getTime()));
System.out.println(calender.get(Calendar.YEAR));
System.out.println(calender.get(Calendar.MONTH)+1);//获取月份是,会比数据中的月份少1,需要进行加 1 
System.out.println(calender.get(Calendar.DATE));
输出:
2023-11-02
2023
11
2

其他方法


 /***
     * 获取 日期所在 年
     *
     * */
    public static  int getYear(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.YEAR);
    }
    /***
     * 获取 日期所在 月
     *
     * */
    public static  int getMonth(Date date){

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return  calendar.get(Calendar.MONTH) + 1;
    }
    /***
     * 获取 日期 当前天数日
     *
     * */
    public static  int getDay(Date date){

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return  calendar.get(Calendar.DAY_OF_MONTH) ;
    }
    /***
     * 获取某一时间 所在 月份 的第一天
     *  比如 : 2020-01-20
     *     结果为: 2020-01-01 00:00:00
     * */
    public static Date getFirstDateOfMonth(Date date) {
        Calendar firstDate = Calendar.getInstance();
        firstDate.setTime(date);
        final int last = firstDate.getActualMinimum(Calendar.DAY_OF_MONTH);
        firstDate.set(Calendar.DAY_OF_MONTH, last);
        //当前日期 的 月份的 第一天)
        return  firstDate.getTime();
    }
    /***
     * 获取某一时间 所在 月份 的最后一天
     *  比如 : 2020-01-20
     *     结果为: 2020-01-31 00:00:00
     * */
    public static Date getEndDayOfMonth(Date date){

        Calendar lastDateMonth = Calendar.getInstance();
        lastDateMonth.setTime(date );
        final int lastDay = lastDateMonth.getActualMaximum(Calendar.DAY_OF_MONTH);
        lastDateMonth.set(Calendar.DAY_OF_MONTH, lastDay);
        //当前日期 的月份的最后一天
        return  lastDateMonth.getTime();
    }

    /***
     * 获取某一时间 所在 月份 下个月的第一天
     *  比如 : 2020-01-20
     *     结果为:2020-02-01 00:00:00
     * */
    public static Date getFirstDayOfNext(Date date){

        Calendar nextMonthFirst = Calendar.getInstance();
        nextMonthFirst.setTime(date);
        nextMonthFirst.set(Calendar.DAY_OF_MONTH, 1);
        nextMonthFirst.add(Calendar.MONTH, 1);
        return  nextMonthFirst.getTime();
    }

解决方法2:使用Date类截取

SimpleDateFormat year = new SimpleDateFormat("yyyy");
SimpleDateFormat mm = new SimpleDateFormat("MM");
Calendar calender = Calendar.getInstance();
Date date = new Date();
System.out.println(yyyy.format(date));
System.out.println(mm.format(date));

输出:
2023-06-02
2023
06
如果用月份的话,直接就是06, 并不是6;不用再加格式 s%
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值