Java常用类之Date类和Calendar类

一 Date类

 (1)Date类的概述:用来表示日期格式,精确到毫秒有两种构造方法一种是无参构造另一种是有参构造
 举例:
public class Demo1 {
    public static void main(String[] args) {
        Date date = new Date();//无参构造
        System.out.println(date);//获取当前的时间
        long time=1000*60*60;//有参构造
        Date date1 = new Date(time);
        System.out.println(date1);
    }
}

结果:这里写图片描述

  (2)Date类转化为long类型:public long getTime() 
                         public void setTime(long time)  :很少用

举例:

public class Demo2 {
    public static void main(String[] args) {
        Date date = new Date();
        long time = date.getTime();
        System.out.println(date);
        System.out.println(time);//转换为long类型
        long l = System.currentTimeMillis();//System类中的方法,单独使用没意义,
        // 一般情况:直接测试 程序的执行速率
    }
}

结果:这里写图片描述

(3)Date---->String之间如何转换 日期格式转换为日期文本格式,这就需要用到DateFormat这个类:他是一个抽象类,不能实例化!用它的子类:SimpleDateFormat
Date转换为String        String format(Date date) 
String转换为Date        public Date parse(String source) 
 SimpleDateFormat的构造方法
 SimpleDateFormat(String pattern):

参数表示: pattern:当前日期使用哪一种模式:开发者规定xxxx年xx月 xx日 xx时 x分x秒
xxxx-xx-xx

    年:  y              yyyy
    月:M               MM
    日: d                dd          yyyy-MM-dd HH:mm:ss  

举例:

public class Demo3 {
    public static void main(String[] args) throws ParseException {
        //Date---String
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy--MM--dd  HH:mm:s");
        String format1 = format.format(date);
        System.out.println(format1);
        System.out.println("-----------------");
        //String--->Date
        String s="2018--8--1  08:30:31";
        Date parse = format.parse(s);
        System.out.println(parse);
    }
}

结果:

2018–08–06 15:45:13

Wed Aug 01 08:30:31 CST 2018
举例:输入你的生日算一算你来这个世界多少天了/
源代码:

public class Demo4 {
    public static void main(String[] args) throws ParseException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的生日");
        String s = sc.next();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date = dateFormat.parse(s);
        long time = date.getTime();
        long now = System.currentTimeMillis();
        long time1=(now-time)/1000/60/24/60;
        System.out.println("你来到这个世界已经"+time1+"天了");
    }
}

结果:
请输入你的生日
1998-05-14
你来到这个世界已经7389天了

二:Calendar类

  (1)Calendar类的概述:Calendar类是一个抽象类,所以不能直接创建一个Calendar的对象,需要调用getInstance,以获得此类型的一个通用的对象;
  (2)Calendar的主要方法有以下几种:void set(int field,int value)   //field时间分量,value设置分量初始值(月份从0开始)

    void add(int field,int value)  //field时间分量,value设置分量的增加值(在当前时间日期基础上进行增加)

    Date getTime()    //输出时间日期

    void setTime(Date date) //将日期类型设置成日历类型

    getActualMaximum(int field)   //获取分量中的最大/小值

    时间分量

    YEAR,MONTH,DATE,HOUR,MINUTE,SECOND

    DAY_OF_WEEK,DAY_OF_MONTH 
    (3)举例:键盘录入任意年份,算出任意年份的2月多少天?

源代码:

public class Demo5 {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
      //键盘录入任意年份,算出任意年份的2月多少天?
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份");
        int year=sc.nextInt();
        calendar.set(year,2,1);
        calendar.add(Calendar.DATE,-1);
        System.out.println(year+"年有"+calendar.get(Calendar.DATE)+"天");
    }
}

结果:请输入年份
2018
2018年有28天

猜你喜欢

转载自blog.csdn.net/weixin_40843624/article/details/81448066