java.lang.System类

获取系统当前时间

System类中的currentTimeMillis()
long time = System.currentTimeMillis();
System.out.println(time);
返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。称为时间戳


java.util.Date类与java.sql.Date类

java.util.Date类,表示特定的瞬间,精确到毫秒
java.sql.Date类继承于java.util.Date类

构造器

  • Date():使用无参构造器创建的对象可以获取本地当前时间。
  • Date(long date) :创建指定毫秒数的Date对象

    常用方法

  • getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

  • toString():把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准。
  • 其它很多方法都过时了。

    java.sql.Date对应着数据库中的日期类型的变量

如何实例化

  1. //构造器一:Date():创建一个对应当前时间的Date对象
  2. Date date1 = new Date();
  3. System.out.println(date1.toString());//Sat Feb 16 16:35:31 GMT+08:00 2019
  4. System.out.println(date1.getTime());//1550306204104
  5. //构造器二:创建指定毫秒数的Date对象
  6. Date date2 = new Date(155030620410L);
  7. System.out.println(date2.toString());
  8. //创建java.sql.Date对象
  9. java.sql.Date date3 = new java.sql.Date(35235325345L);
  10. System.out.println(date3);//1971-02-13

如何将java.util.Date对象转换为java.sql.Date对象

  1. //情况一:
  2. // Date date4 = new java.sql.Date(2343243242323L);
  3. // java.sql.Date date5 = (java.sql.Date) date4;
  4. //情况二:
  5. Date date6 = new Date();
  6. java.sql.Date date7 = new java.sql.Date(date6.getTime());

java.text.SimpleDateFormat类

概述

java.text.SimpleDateFormat 类是一个不与语言环境有关的方式来格式化和解析日期的具体类。
它允许进行格式化:日期文本、解析:文本日期

格式化

  • public SimpleDateFormat() :默认的模式和语言环境创建对象
  • public SimpleDateFormat(String pattern):该构造方法可以用参数pattern指定的格式创建一个对象
  • public String format(Date date):方法格式化时间对象date

    解析

  • public Date parse(String source):从给定字符串的开始解析文本,以生成 一个日期。

    1. //实例化SimpleDateFormat:使用默认的构造器
    2. SimpleDateFormat sdf = new SimpleDateFormat();
    3. Date date = new Date();
    4. //格式化:日期 --->字符串
    5. String format = sdf.format(date);
    6. System.out.println(format);
    7. //解析:格式化的逆过程,字符串 ---> 日期
    8. String str = "19-12-18 上午11:43";
    9. Date date1 = sdf.parse(str);
    10. System.out.println(date1);
    1. //按照指定的方式格式化和解析:调用带参的构造器
    2. // SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa");
    3. SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    4. //格式化
    5. String format = sdf.format(date);
    6. System.out.println(format);//2019-02-18 11:48:27
    7. //解析:要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数体现),
    8. //否则,抛异常
    9. Date date2 = sdf.parse("2020-02-18 11:48:27");
    10. System.out.println(date2);

java.util.Calendar(日历)类

概述

Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能。

实例化

  • 方式一:创建其子类(GregorianCalendar)的对象
  • 方式二:

调用其静态方法getInstance()
Calendar calendar = Calendar.getInstance();

常用方法

  1. Calendar calendar = Calendar.getInstance();
  2. //2.常用方法
  3. //get()
  4. int days = calendar.get(Calendar.DAY_OF_MONTH);//获取今天是这个月第几天
  5. System.out.println(days);
  6. System.out.println(calendar.get(Calendar.DAY_OF_YEAR));//获取今天是今年第几天
  7. //set()
  8. //calendar可变性
  9. calendar.set(Calendar.DAY_OF_MONTH,22);//设置今天是这个月第22天
  10. days = calendar.get(Calendar.DAY_OF_MONTH);
  11. System.out.println(days);
  12. //add()
  13. calendar.add(Calendar.DAY_OF_MONTH,-3);
  14. days = calendar.get(Calendar.DAY_OF_MONTH);
  15. System.out.println(days);
  16. //getTime():日历类---> Date
  17. Date date = calendar.getTime();
  18. System.out.println(date);
  19. //setTime():Date ---> 日历类
  20. Date date1 = new Date();
  21. calendar.setTime(date1);
  22. days = calendar.get(Calendar.DAY_OF_MONTH);
  23. System.out.println(days);
  24. }