zoukankan      html  css  js  c++  java
  • 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));
    
  • 相关阅读:
    模拟赛2020.9.11
    棋盘(dfs)
    树的重心
    模拟赛9.4
    最大数(线段树)
    [模板] 线段树
    [模板][数据结构] 树状数组
    [AHOI2018初中组][二分查找] 分组
    [模板] Kruskal 求最小生成树
    [模板] 最近公共祖先(LCA)的几种求法
  • 原文地址:https://www.cnblogs.com/z5452830/p/13874643.html
Copyright © 2011-2022 走看看