当前位置:   article > 正文

API--02--Java.util.date与java.sql.date_需要的类型:java.sql.date提供的类型:java.util.date

需要的类型:java.sql.date提供的类型:java.util.date

JDK8 之前日期时间 API

在这里插入图片描述

System类 currentTimeMillis();

在这里插入图片描述

时间戳

  1. 返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差
  2. 称为时间戳
    在这里插入图片描述

java.util.Date类

在这里插入图片描述

两个构造器的使用

  • 构造器一:Date():创建一个对应当前时间的Date对象
  • 构造器二:创建指定毫秒数的Date对象

两个方法的使用

  • toString():显示当前的年、月、日、时、分、秒
  • getTime():获取当前Date对象对应的毫秒数。(时间戳

案例:

 @Test
    public void test2(){
        //构造器一:Date():创建一个对应当前时间的Date对象
        Date date1 = new Date();
        System.out.println(date1.toString());//Sat Feb 16 16:35:31 GMT+08:00 2019

        System.out.println(date1.getTime());//1550306204104

        //构造器二:创建指定毫秒数的Date对象
        Date date2 = new Date(155030620410L);
        System.out.println(date2.toString());
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述

默认格式:

  • date1.toString() 月日 时分秒 时区 年
Sat Feb 16 16:35:31 GMT+08:00 2019

Java.sql.Date类

一. java.sql.Date是java.util.Date的==子类

在这里插入图片描述

可见这三个类都是java.utl.Date的子类
而这三个类都是对应与jdbc处理日期格式的类,有着 不同的日期精度和格式

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

  1. java中有两个Date类,一个是java.util.Date通常情况下用它获取当前时间构造时间
  2. java.sql.Date是针对SQL语句使用的.

在这里插入图片描述

三. java.sql.Date时间格式

在这里插入图片描述

  • java.sql.Date也是一个时间戳
  • 但它把当前的时间剪掉了,保证它一定是那个日期的0点0分0秒的时间戳
  • java.sql.Date.tostring的时候 格式 是 年 月 日

java.sql包下给出三个与数据库相关的日期时间类型:

  • Date:表示日期,只有年月日,没有时分秒。会丢失时间;
  • Time:表示时间,只有时分秒,没有年月日。会丢失日期;
  • Timestamp:表示时间戳,有年月日时分秒,以及毫秒
 @Test
    public void  test03(){
        Date utilDate = new Date();//util utilDate
        System.out.println("utilDate : " + utilDate);

        //uilt date转sql date
        java.sql.Date sqldate = new java.sql.Date(utilDate.getTime());
        Time sqltime = new Time(utilDate.getTime());
        Timestamp Timestamp = new Timestamp(utilDate.getTime());


        System.out.println("sqldate : " + sqldate);
        System.out.println("sqltime : " + sqltime);
        System.out.println("Timestamp : " + Timestamp);

    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在这里插入图片描述

util.Date与sql.Date的相互转换

一: java.sql.Date=>java.util.Date

因为本身sql.Date就是 java.util.Date子类 .多态呈现

上向转型,会自动转换

Date date4 = new java.sql.Date(2343243242323L);

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

  • 情况一:(java.sql.Date) date4;强转
  • 情况二:new java.sql.Date(date6.getTime()); 利用时间戳,通过构造函数
 @Test
    public void  test04(){

        //如何将java.util.Date对象转换为java.sql.Date对象
        //情况一:
       Date date4 = new java.sql.Date(2343243242323L);
       java.sql.Date date5 = (java.sql.Date) date4;
       
        System.out.println(date4);
        System.out.println(date5);

        //情况二:
        Date date6 = new Date();
        java.sql.Date date7 = new java.sql.Date(date6.getTime());
        
        System.out.println(date6);
        System.out.println(date7);
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

在这里插入图片描述

补充:

同时util.Date和sql.Date都可以用SimpleDateFormat格式化

   @Test
    public void  test05(){
        Date utilDate = new Date();//uilt.Date
        System.out.println("utilDate :        " + utilDate);

        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("format utilDate : " + format.format(utilDate));

        System.out.println("**********************************************");


        java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
        Timestamp Timestamp = new Timestamp(utilDate.getTime());//uilt.Date转sql.Date

        System.out.println("sqlDate :          " + sqlDate);
        System.out.println("format sqlDate:    " + format.format(sqlDate));
        System.out.println("**********************************************");
        System.out.println("Timestamp        : " + Timestamp);
        System.out.println("format Timestamp : " + format.format(Timestamp));
    }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

在这里插入图片描述

案例

Java 求两个日期相减

 public static void main(String[] args) throws Exception {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d1 = df.parse("2004-01-05 13:31:40");
        Date d2 = df.parse("2004-01-02 13:30:40");

        long diff = d1.getTime() - d2.getTime();//这样得到的差值是毫秒级别
        
        long days = diff / (1000 * 60 * 60 * 24);
        
        long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
        
        long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
        
        System.out.println("结果:\t"+days+"天"+hours+"小时"+minutes+"分");
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/320803
推荐阅读
相关标签
  

闽ICP备14008679号