System.currentTimeMillis(); 获取当前的毫秒时间戳
从1970 1月1日0时0分0秒开始计算的
Date类
有两个 java.util.Date 还有一个 java.sql.Date

java.util.Date

常用构造器 无参 获取当前的时间
有参 传入时间戳 根据时间戳显示当前时间
java.sql.Date 下的 创建需要传入时间戳 他只显示年月日
java.sql.Date date4 =new java.sql.Date(date2.getTime());
java.sql.Date 是java.util.Date的子类
java.sql.Date转成 java.util.Date 可以直接接受
java.util.Date 转成 java.sql.Date
总结一下 java.sql.Date 和java.util.Date
互相转换最终都是通过 getTime 获取时间戳 然后通过两个类的
构造器进行转换
为什么他们两个都有getTime() 方法 因为util下的Date有 sql下的Date是他的子类
java.util.Date date = new java.util.Date();
转换
java.sql.Date date1 = new java.sql.Date(date.getTime())
转回来
java.util.Date date2 = new java.util.Date(date1.getTime())
如果你直接使用父类和子类的多态关系接收
因为java.sql.Date 下的只显示 年月日 直接转成java.util.Date下没有时间显示

  1. Date date = new Date();
  2. System.out.println(date);
  3. //getTime 获取时间戳
  4. System.out.println(date.getTime());
  5. Date date2 = new Date(date.getTime());
  6. System.out.println(date2);
  7. /*
  8. * java.sql.Date
  9. *
  10. *
  11. * */
  12. Date date3 = new java.sql.Date(date2.getTime());
  13. System.out.println(date3);
  14. java.sql.Date date4 =new java.sql.Date(date2.getTime());
  15. System.out.println(date4);
  16. /*
  17. * 以下属于过时的API不建议使用
  18. *
  19. * */
  20. //获取天 星期几
  21. System.out.println(date.getDay());
  22. //获取小时
  23. System.out.println(date.getHours());
  24. //获取分钟
  25. System.out.println(date.getMinutes());
  26. //获取秒数
  27. System.out.println(date.getSeconds());
  28. //获取日期
  29. System.out.println(date.getDate());
  30. //java.sql.Date date2 = new java.sql.Date();

DateFormat 抽象类 我们只能去实例化他的子类
SimpleDateFormat 是DateFormat的子类
转换方法
format(date) 将时间转成 字符串显示
parse(string) 将字符串转成时间 Date
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
使用有参构造的时候注意 转换的格式一定要对应上 不然会报错
日期转成字符串format(date)
字符串转成日期 parse(string)

//使用他的有参构造  yyyy-MM-dd hh:mm:ss// 2022-04-20 10:41:58
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = new Date();
System.out.println(simpleDateFormat.format(date));

Calendar 日历
GregorianCalendar日历 是Calendar的子类、
Calendar是一个抽象类 他不能被实例化
1 通过他的静态方法getInstance()
2 创建他的子类对象
get方法获取 如果你要获取那些信息就用Calendar类去点出来

Calendar calendar2 = new GregorianCalendar();
//常用方法
//get  获取星期几是以星期天为1开始的
//获取星期几
calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
//获取这个月的多少天
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); 
calendar.get(Calendar.DAY_OF_MONTH);//获取这个月的第几天
//set 改变
//改变和获取是一样的 但是通过Calendar点出相应的属性
calendar.set(Calendar.DAY_OF_MONTH, 27);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
//add() 增加的意思  如果为负数就是减少的意思
calendar.add(Calendar.DAY_OF_MONTH, -2);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
  • now():获取当前时间、日期
    of():获取指定的日期、时间 他是有返回值的 而不是改变自身
    getXxx():获取值
    withXxx():设置值
    plusXxx():加
    minusXxx():减
    这几个的好处是都不会改变自己 所有的api都是有返回值的
    LocalDateTime localDateTime2 =  localDateTime.of(2022, 10, 2, 15, 13);
    System.out.println(localDate);
    System.out.println(localDateTime);
    System.out.println(localTime);
    System.out.println(localDateTime2);
    localDateTime.getMonth();
    System.out.println(localDateTime.getMonth());
    System.out.println(localDateTime.getMonthValue());