JAVA笔记整理-日期和日历类

日期和日历类

1、日期类 Date

​ 在Java中用于表示日期的类 java.util.Date() ,用于获取日期和时间的对象, 不过这个类的一些方法以及过时(被日历类取代)

​ 创建日期类

 Date  date = new Date();
 Date date = new Date(long) ;
        // 创建日期类的对象
        Date date = new Date();
        //获取当前时间 以 标准格式
        System.out.println(date);
        // 获取当前时间的毫秒数
        System.out.println(date.getTime());
        //通过毫秒数构建当前时区的 时间
        Date date2 = new Date(100000);
        System.out.println(date2);
        // 获取 纪元时间  相隔本地时间8时区
        System.out.println(date.toGMTString());
        System.out.println(date.toLocaleString());
        //测试时间的先后
        System.out.println(date.after(date2));// true
        System.out.println(date.before(date2));//false
        System.out.println(date.compareTo(date2));//比较时间大小
        // 时间转成字符串
        System.out.println(date.toString());

2、日历类 Calendar

java.util.Calendar 是表示日历类, 它是一个单例模式 ,通过 getInstance()获取一个日历对象, 并获取日历的任意时间,日期。

常用方法

​ getInstance() : 获取日历对象

​ get() :获取指定的单位的日历数值 (年,月,日 等等)

​ set():设置指定单位的日历数值

​ add() :添加指定单位的日历数值

​ getTimeInMills() :获取日期的毫秒数

      // 获取当前日历对象
        Calendar cal =  Calendar.getInstance();
        // 日历的属性 (fields)
        System.out.println(Calendar.DATE);
        System.out.println(Calendar.YEAR);
        System.out.println(Calendar.MONTH);
        //获取当前日历的年份
        System.out.println(cal.get(Calendar.YEAR));
        // 获取月份 (返回 0-11)
        System.out.println(cal.get(Calendar.MONTH));
        // 获取日(1-31)
        System.out.println(cal.get(Calendar.DATE));
        // 获取日期
        System.out.println("获取当前日历的日期:"+ cal.getTime());
        // 添加日历 (指定的field 和 数量)
        // 将当前日历添加2个月
        cal.add(Calendar.MONTH ,2);
        System.out.println("新的日期:"+cal.getTime());
        cal.add(Calendar.DATE,-3);
        System.out.println("新的日期:"+cal.getTime());

        // 判断日期的前后 after  before
        // 题目 给定两个日期, 计算相差多少天
        Calendar cal1 = Calendar.getInstance();

计算两个日历(日期)的相差天数/月数

 // 重写构建一个时间
        Calendar cal2 =  Calendar.getInstance();
        // 设置指定的时间
        cal2.set(2020,10,20);
        System.out.println("cal2---"+cal2.getTime());
        // 原始方式  通过毫秒数计算
        long  n =  cal1.getTimeInMillis()-cal2.getTimeInMillis();
        System.out.println("n---->"+n);
        long days =  n/(1000*60*60*24);
        System.out.println("days:"+days);

        // java8 的方式
        LocalDate date1 =   LocalDate.of(2020,2,22);
        LocalDate date2 =   LocalDate.of(2020,3,22);
        long days2 = date1.until(date2,ChronoUnit.DAYS);
        System.out.println("两个时间相差的天数:"+ days2);

3、字符串与日期格式的转换

  /**
     * 字符串转日期
     * @param str
     */
    public static Date strToDate(String str) throws ParseException {
        //使用格式化日期类    指定格式 :yyyy-MM-dd HH:mm:ss
        SimpleDateFormat  sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         // 指定格式的字符串 转成 日期
        return sdf.parse(str);

    }
/**
     * 日期转指定格式的字符串
     */
    public static String dateToString(Date date){
        // 使用同样的方式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        return sdf.format(date);
    }
       // 调用转换方法
        String s = "2020-10-22 10:10:10";
        Date myDate= strToDate(s); // 注意 这里的格式需要匹配yyyy-MM-dd HH:mm:ss
        System.out.println(myDate);

        // 将日期转成字符串
        System.out.println(dateToString(myDate));
posted @ 2020-10-25 19:12  落雨♡̶初晴  阅读(175)  评论(0编辑  收藏  举报