java中三种获取时间的方式

java有三种方式可以获取当前时间(目前我用到的,若有其他见解,望不吝赐教)

  1. System.currentTimeMillis() :返回类型为Long,自1970年1月1日0时起的毫秒数
  2. Date:进入到源码可以看到其实就是相当于Date(System.currentTimeMillis())
  3. Calendar:获取当前系统时间,其中的Calendar.YEAR等方法代替了Date中的getYear等方法
    注意:
    Calendar中的获取当前月份的方法:Calendar.MONTH 底层是从0开始计算,所以获取的月份需要加1;
    Calendar中的获取当前周的第几天的方法:Calendar.DAY_OF_WEEK 底层获取一周中的第几天是从周日开始的,所以当前一周中的第几天需要减1;

下面是针对此三种方式的测试:

		/*
         * @description: 测试System.currentTimeMillis() Date  获取时间的区别
         */
        SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Long mills = System.currentTimeMillis();
        System.out.println("System.currentTimeMillis():mills=====>" + mills);
        String currentStr = dateformat.format(System.currentTimeMillis());
        System.out.println("System.currentTimeMillis():currentStr=====>" + currentStr);

        Date date = new Date();
        System.out.println("Date():date=====>" + date);
        String dateStr = dateformat.format(date);
        System.out.println("Date():dateStr=====>" + dateStr);

        /*
         * @description: 测试Calendar
         */
        Calendar cal = Calendar.getInstance();
        int dayCal = cal.get(Calendar.DATE);
        int monthCal = cal.get(Calendar.MONTH) + 1;
        int yearCal = cal.get(Calendar.YEAR);
        int day_week = cal.get(Calendar.DAY_OF_WEEK);
        int day_month = cal.get(Calendar.DAY_OF_MONTH);
        int day_year = cal.get(Calendar.DAY_OF_YEAR);

        System.out.println("Calendar:time======>" + cal.getTime());
        System.out.println("Calendar:dayCal======> " + dayCal);
        System.out.println("Calendar:monthCal======>" + monthCal);
        System.out.println("Calendar:yearCal======>" + yearCal);
        System.out.println("Calendar:day_week======>" + day_week);  // 星期日为一周的第一天输出为 1,星期一输出为 2,以此类推
        System.out.println("Calendar:day_month======>" + day_month);
        System.out.println("Calendar:day_year======>" + day_year);

执行结果:
在这里插入图片描述
Calendar的计算使用:

/*
         * @description: Calendar计算
         */
        //过去七天
        cal.setTime(new Date());
        cal.add(Calendar.DATE, - 7);
        Date d = cal.getTime();
        String day = dateformat.format(d);
        System.out.println("Calendar:add()过去七天======>" + day);
        //过去一月
        cal.setTime(new Date());
        cal.add(Calendar.MONTH, -1);
        Date m = cal.getTime();
        String mon = dateformat.format(m);
        System.out.println("Calendar:add()过去一个月======>" + mon);
        //当天的开始时间
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String daystart = format.format(cal.getTime())+" 00:00:00";
        System.out.println("Calendar:add()当天的开始时间======>" + daystart);
        //当天的截止时间
        String dayend = format.format(cal.getTime())+" 23:59:59";
        System.out.println("Calendar:add()当天的截止时间======>" + dayend);

执行结果:
在这里插入图片描述
相关Calendar的其他计算,可根据上边方式进行使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值