深入了解Java核心类库--Date|深入了解Java核心类库--Date,Calendar,DateFormat类

目录

  • 一、Date
    • 1.1 构造方法
      • 1.1.1 Date()
      • 1.1.2 Date(long date)
    • 1.2 常用方法
      • 1.3 其他方法
      • 二、Calendar(抽象)
        • 2.1 获取时间 get()
          • 2.2 设置时间
            • 2.3 时间计算
              • 2.4 其它方法
              • 三、DateFormat(抽象)
                • 3.1 构造方法
                • 总结

                  一、Date
                  • Date类表示特定的时刻,精度为毫秒
                  • Date的两个附加功能:Calendar、DateFormat
                  Calendar类应该用于在日期和时间字段之间进行转换
                  DateFormat类应该用于格式化和解析日期字符串
                  不推荐使用Date中的相应方法
                  【深入了解Java核心类库--Date|深入了解Java核心类库--Date,Calendar,DateFormat类】
                  1.1 构造方法

                  1.1.1 Date() 分配时间,根据当前的默认毫秒值创建日期对象
                  Date d = new Date(); System.out.println(d); //当前时间:Tue Jun 15 13:44:44 CST 2021


                  1.1.2 Date(long date) 从1970.1.1 8:00:00开始,根据给定的毫秒值创建日期对象
                  Date d = new Date(1000*60*60*24); System.out.println(d); //Fri Jan 02 08:00:00 CST 1970


                  1.2 常用方法
                  Modifier and Type Method Description
                  long getTime() 返回表示的1970年1月1日00:00:00 GMT以来的毫秒数
                  void setTime?(long time) 设置时间,设置为1970年1月1日00:00:00之后的 time毫秒的时间点
                  String toString() 将此 Date对象转换成String形式
                  Date d = new Date(); System.out.println(d); //Tue Jun 15 13:53:39 CST 2021System.out.println(d.getTime())//获取当前时间的毫秒数:1623736419381System.out.println(d.toString()); //Tue Jun 15 13:53:39 CST 2021d.setTime(24*60*60*1000); //设置时间System.out.println(d.getTime()); //86400000System.out.println(d); //Fri Jan 02 08:00:00 CST 1970System.out.println(d.toString()); //Fri Jan 02 08:00:00 CST 1970


                  1.3 其他方法
                  Modifier and Type Method Description
                  int hashCode() 返回此对象的哈希码值。
                  boolean after?(Date when) 测试此日期是否在指定日期之后。
                  boolean before?(Date when) 测试此日期是否在指定日期之前。
                  Object clone() 返回此对象的副本。
                  int compareTo?(Date anotherDate) 比较两个日期的订购。
                  boolean equals?(Object obj) 比较两个相等的日期。
                  static Date from?(Instant instant) 从 Instant对象获得 Date的实例。

                  二、Calendar(抽象) 日历类,提供操作日历字段的方法

                  2.1 获取时间 get()
                  Calendar d = Calendar.getInstance(); System.out.println("获取当前时间:"); System.out.println("年:"+d.get(d.YEAR)); System.out.println("月:"+(d.get(d.MONTH)+1)); //月从0开始,所以要+1System.out.println("日:"+d.get(d.DAY_OF_MONTH)); System.out.println("时:"+d.get(d.HOUR_OF_DAY)); System.out.println("分:"+d.get(d.MINUTE)); System.out.println("秒:"+d.get(d.SECOND));

                  获取当前时间: 年:2021 月:6 日:15 时:14 分:25 秒:32


                  2.2 设置时间
                  • set()
                  System.out.println("设置当前时间:"); Calendar d = Calendar.getInstance(); //单独设置d.set(d.YEAR,2000); System.out.println("年:"+d.get(d.YEAR)); //一起设置,d.set(year, month, date, hourOfDay, minute, second); d.set(2000, 1, 1, 23, 59, 59); System.out.println("年:"+d.get(d.YEAR)); System.out.println("月:"+d.get(d.MONTH)); System.out.println("日:"+d.get(d.DAY_OF_MONTH)); System.out.println("时:"+d.get(d.HOUR_OF_DAY)); System.out.println("分:"+d.get(d.MINUTE)); System.out.println("秒:"+d.get(d.SECOND));

                  设置当前时间: 年:2000 年:2000 月:1 日:1 时:23 分:59 秒:59


                  2.3 时间计算
                  • add()
                  Calendar d = Calendar.getInstance(); d.set(2000, 0, 31, 23, 59, 59); System.out.println(d.getTime()); d.add(d.YEAR,10); //增加十年System.out.println("year+10:"+d.getTime()); d.add(d.MONTH,1); //增加一个月System.out.println("month+1:"+d.getTime());

                  Mon Jan 31 23:59:59 CST 2000year+10:Sun Jan 31 23:59:59 CST 2010month+1:Sun Feb 28 23:59:59 CST 2010


                  2.4 其它方法
                  Modifier and Type Method Description
                  int getActualMaximum?(int field) 给定此 Calendar的时间值,返回指定日历字段可能具有的 Calendar
                  int getActualMinimum?(int field) 给定此 Calendar的时间值,返回指定日历字段可能具有的 Calendar
                  String getCalendarType() 返回此 Calendar的日历类型
                  int getFirstDayOfWeek() 得到一周的第一天是什么
                  static Calendar getInstance() 使用默认时区和区域设置获取日历
                  static Calendar getInstance?(Locale aLocale) 使用默认时区和指定的区域设置获取日历
                  static Calendar getInstance?(TimeZone zone) 使用指定的时区和默认语言环境获取日历
                  static Calendar getInstance?(TimeZone zone, Locale aLocale) 获取具有指定时区和区域设置的日历
                  TimeZone getTimeZone() 获取时区。

                  三、DateFormat(抽象) 格式化和解析日期字符串(将Date创建转化为日常格式)

                  3.1 构造方法
                  设置格式
                  //y:年M:月d:日H:时m:分s:秒SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String text1 = format.format(new Date()); //将date转换成已经设置格式的字符串System.out.println(text1); System.out.println(format.parse("2021年6月10日 10:10:10")); //将日期字符串转换为Date对象

                  2021年06月15日 15:00:10 Thu Jun 10 10:10:10 CST 2021

                  面试题通常会问道时间计算:输入→parse→date对象→gettime()→相减得毫秒→换算

                  总结 本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

                    推荐阅读