【java类库;日历类】

对于某些问题在写程序中非常需要输出当前的时间,或者是对日期时间的一些操作。尤其是在做一些项目或者大程序中,这一点尤为重要。对日期和时间的操作,比如说我想知道2018年5月5日是那一年的第几天或者是周几的类似问题,在现实中我们通常是先查日历,在进行计算。我们在计算机中该如何做呢? 众所周知java中有大量类库可供我们使用,这些类库使用好了对我们的帮助非常大。今天来看Date与Calendar类

Date类

1.得到当前时间,对于Date类的对象它返回的按国际标准输出的当前时间。
输出样例:Sat May 25 17:41:56 CST 2019

public  void test2(){
        Date d=new Date();
        System.out.println(d);
    }

2.得到Date的毫秒数:getTime()方法,调用这个方法你会得到一个Date的毫秒数。例如:1558779039587

public  void test3(){
        Date d=new Date();
        System.out.println(d.getTime());
    }

3.得到当前时间的毫秒数:System.currentTimeMillis()。这个方法是用标准设备输出当前时间的毫秒数等效于date。getTime()方法。

public  void test4(){
        System.out.println(System.currentTimeMillis());
    }

4.计算代码的性能,代码性能及代码运行的速度,这个东西跟复杂都有关这里不解释。我用一个循环程序,我们测试这个程序的性能。


    private  void circle1(){
        for(int i=0;i<100000;i++){
            System.out.println(i);
        }
    }
    @Test
    public  void test5(){
        long start=System.currentTimeMillis();
        circle1();
        long end=System.currentTimeMillis();
        System.out.println(end-start);
    }

5.Date类的格式化输出;直接看代码

    public  void test6() throws ParseException {
        Date d = new Date();
        SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh:ss ms");
        //把日期时间格式化成字符串
        String cur = df.format(d);
        //把符合模式串的转换成Date对象
        Date dd = df.parse("2019年05月19日 08:23 5623");
        System.out.println(dd);
        System.out.println(cur);
    }

Calendar类

1.首先 Calendar类是一个抽象类,就是我们不能通过他来创建对象。我们必须通过它的子类来实现功能。所以我们在创建 Calendar类对象时必须先private Calendar calendar=null;来初始化。
2.从日历类(Calendar类)获取当前时间Date对象,输出的仍是当前时间与Date类相同

public void test2(){
        System.out.println(calendar.getTime());//date

    }

3.日历类的基本用法;

public void test3(){
        //取年
        int year=calendar.get(Calendar.YEAR);
         //取月
        int month=calendar.get(Calendar.MONTH);
         //取日
        int day=calendar.get(Calendar.DAY_OF_MONTH);
         //取时
        int hour=calendar.get(Calendar.HOUR);
         //取周几
        int weekdday=calendar.get(Calendar.DAY_OF_WEEK);
         //取分钟
        int minute=calendar.get(Calendar.MINUTE);
         //取秒
        int second=calendar.get(Calendar.SECOND);
        System.out.println(year+"年"+month+"月"+day+"日,星期"+weekdday);

    }

解释一下这个在输出周几和月份时会少一个,因为外国日历时从0-11月开始算的从周天开始新的一周。
4.例子:计算一年后的今天

 public void test4(){
        calendar.add(Calendar.YEAR,1);
        int year=calendar.get(Calendar.YEAR);
        int month=calendar.get(Calendar.MONTH);
        int day=calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年"+(month+1)+"月"+day+"日");
    }

5.20000.2月最后一年是星期几 月从0月开始 。星期从周日开始

public void test5(){
        calendar.set(2014,3,1);
        calendar.add(Calendar.DAY_OF_MONTH,-1);
        int day =calendar.get(Calendar.DAY_OF_WEEK);
        System.out.println(day-1);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值