JAVA工具类——Date的日常使用总结

JAVA工具类——Date

一.格式化日期类型

1.Date转String

		//参数pattern可以任意(参数中有一下字符即可)如:
        //1.yyyy年-MM月-dd日
        //2.HH:mm:ss
        //3......
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date=new Date();
        String nowTime=sdf.format(date);
        System.out.println(nowTime);

2.String转Date

		//若要转换精确到秒,则使用该pattern
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String neededParseTime="2019-08-30 22:44:21";
        try {
            Date nowTime = sdf.parse(neededParseTime);
            System.out.println(nowTime);
        } catch (ParseException e) {
            e.printStackTrace();
        }

输出结果:Fri Aug 30 22:44:21 CST 2019

二.日期之间的比较

1.Date工具类的before(),after()方法

		//before 理解为 “<”,after 理解为 “>”。
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String timeOne="2019-08-30 22:44:21";
        String timeTwo="2019-09-30 22:44:21";
        try {
            Date comparedTimeOne = sdf.parse(TimeOne);
            Date comparedTimeTwo = sdf.parse(TimeTwo);
            boolean result1=comparedTimeOne.before(comparedTimeTwo);
            boolean result2=comparedTimeTwo.before(comparedTimeOne);
            boolean result3=comparedTimeOne.after(comparedTimeTwo);
            boolean result4=comparedTimeTwo.after(comparedTimeOne);
            System.out.println(result1+" "+result2+" "+result3+" "+result4);
        } catch (ParseException e) {
            e.printStackTrace();
        }

运行结果:true false false true

2.Date工具类的getTime()方法

		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String timeOne="2019-08-30 22:44:21";
        String timeTwo="2019-09-30 22:44:21";
        try {
            Date comparedTimeOne = sdf.parse(timeOne);
            Date comparedTimeTwo = sdf.parse(timeTwo);
            long timeMillisecondOne = comparedTimeOne.getTime();
            long timeMillisecondTwo = comparedTimeTwo.getTime();
            boolean result = timeMillisecondOne > timeMillisecondTwo;
            System.out.println("毫秒数比较结果:"+result);
        } catch (ParseException e) {
            e.printStackTrace();
        }

运行结果:毫秒数比较结果:false

3.String的compareTo()方法

		//保持两个字符串格式一致,
        //可以理解为 compareTo 左边字符串中每一位与右边字符串中对应位数做差
        //结果为“—”,前边时间小;反之,前边时间大。
        String timeOne="2019-06-30 22:44:21";
        String timeTwo="2019-09-30 22:44:21";

        int result=timeOne.compareTo(timeTwo);
        System.out.println(result);

运行结果:-3
三.获取一个月的最后一天

		//获取一个月中的最后一天
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        // 定义当前期间的1号的date对象
        Date date = null;
        try {
            date = sdf.parse("20190201");
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MONTH,1);//月增加1天;若获取下一个月最后一天,1改2即可
        calendar.add(Calendar.DAY_OF_MONTH,-1);//日期倒数一日,既得到本月最后一天
        Date voucherDate = calendar.getTime();
        System.out.println(sdf.format(voucherDate));

运行结果:20190228

四,获取两个日期间隔天数

		String dateStr1="2016-02-01";
        String dateStr2="2019-08-31";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        Date parseDate1=null;
        Date parseDate2=null;
        try {
            parseDate1 = sdf.parse(dateStr1);
            parseDate2 = sdf.parse(dateStr2);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //计算两个日期的毫秒数,他们的差除以一天的毫秒数
        int days = (int) ((parseDate2.getTime() - parseDate1.getTime()) / (1000*3600*24));
        System.out.println("间隔天数:"+days);

运行结果:间隔天数:1102

欢迎各路大神指正,后续用到哪些时间操作继续更新。

猜你喜欢

转载自blog.csdn.net/weixin_44758548/article/details/100167887