美文网首页时间相关操作
日期时间类Date、DateFormat、Calendar

日期时间类Date、DateFormat、Calendar

作者: 我是java程序员 | 来源:发表于2019-01-08 20:54 被阅读11次

Date类

 1.需要了解的知识:

  计算机中的时间都是以距离时间原点多少毫秒来计算的。时间原点为格林威治时间1970年1月1日0时0分0秒(GTM)。由于时区不同,北京、上海为东八区,所以中国时间是以中国标准时间计算的即1970年1月1日8时0分0秒。

 2.Date类常用构造函数

  空参构造:public Date() 创建当前系统的时间
  有参构造:public Date(long date)参数为毫秒值,表示创建自定义时间,以 时间原点为基础

 3.常用方法

  1.getTime():把日期对象转化成相对应的毫秒值
  2.setTime():给日期对象设置参数指定的毫秒值,得到新的日期

DateFormat类

 1.了解DateFormat类

  DateFormat类是一个抽象类,对日期时间进行格式化操作将日期修改成想要的输出格式。由于其是抽象类,不能直接创建对象,一般都是其实现类SimpleDateFormat类创建对象。

 2.常用方法

  format()方法:将系统时间格式化

        //1.创建格式化字符串
        String str = "yyyy年MM月dd日 HH时mm分ss秒";
        //2.创建Date类对象
        Date date = new Date();
        //3.创建SimpleDateFormat对象
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(str);
        //4.调用方法
        System.out.println(simpleDateFormat.format(date));

  parse()方法:将格式化的时间转换为Date()对象

        //1.日期格式化
        String string1 = "yyyy-MM-dd HH-mm-ss";
        //2.格式化字符串日期
        String string2 = "1996-12-19 00-00-00";
        //3.创建SimpleDateFormat对象
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat(string1);
        //4.调用方法
        //抛异常,字符串不对时
        Date date1 = simpleDateFormat1.parse(string2);
        //输出结果
        System.out.println(date1);

Calendar类

 1.了解Calendar类

  Calendar类是一个抽象类,含义是日历类,在Date类后出现,封装了许多时间信息方便获取。由于其是抽象类,不能直接创建对象,有两种方式可以创建其对象。一是其实现类GregorianCalendar类,但由于其诸多不方便原因,一般都是选择令一种通过静态方法getInstance()方法来创建对象的。注意:西方国家月份为0到11月,没有12月,月份变为中国时间是要+1。

 2.常用方法

  get(int field)方法 :得到给定字段的值,如Calenbar.YEAR字段的值等。
  set(int field, int value)方法 :将值赋给指定的字段值
  add(int field, int amount) :给指定的字段增减值。
  getTime() :得到当前Calendar对象的时间返回一个Date对象。

public static void main(String[] args) {
        //年月日相对应的数字字段值
        System.out.println(Calendar.YEAR);
        System.out.println(Calendar.MONTH);
        System.out.println(Calendar.DAY_OF_MONTH);

        //set方法的使用
        //1.创建Calendar对象
        Calendar calendar = Calendar.getInstance();
        //2.设置年月日 如:2019.11.11; 因为西方国家时0~11月所以月份要减1
        calendar.set(Calendar.YEAR,2019);
        calendar.set(Calendar.MONTH,10);
        calendar.set(Calendar.DAY_OF_MONTH,11);
        print(calendar);

        //add方法的使用,如将上面的时间变为2017.7.18;
        calendar.add(Calendar.YEAR,-2);
        calendar.add(Calendar.MONTH,-4);
        calendar.add(Calendar.DAY_OF_MONTH,7);
        print(calendar);

        //把当前对象转换为Date对象 getTime方法
        Date date = calendar.getTime();
        System.out.println(date);
    }
    private static void print(Calendar cal) {
        //获取年
        int year = cal.get(Calendar.YEAR);
        //获取月
        int month = cal.get(Calendar.MONTH);
        //获得日
        int day = cal.get(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年"+(month+1)+"月"+day+"日");
    }

相关文章

网友评论

    本文标题:日期时间类Date、DateFormat、Calendar

    本文链接:https://www.haomeiwen.com/subject/qowbrqtx.html