java.util.Date和java.sql.Date以及System.currentTimeMillis()涉及到时间的问题

Posted scp1927

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.util.Date和java.sql.Date以及System.currentTimeMillis()涉及到时间的问题相关的知识,希望对你有一定的参考价值。

java.util.Date与java.sql.Date的区别

  1.      util.Date  
1 java.util.Date nowUtil =new java.util.Date();//new了一个util.Date
2 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMMdd HH:mm:ss");//设置格式
3 String time = sdf.format(nowUtil);

5 System.out.println(nowUtil);//直接输出Date
6 System.out.println(time);//转换格式再输出

输出显示

2018七月11 21:38:01
Wed Jul 11 21:38:01 CST 2018

 

      2.       sql.Date

 

1 java.sql.Date nowSql=new java.sql.Date(System.currentTimeMillis());//通过调用System.currentTimeMillis()获得UNIX时间
2 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMMdd HH:mm:ss");
3 String time = sdf.format(nowSql);
4 System.out.println(time);
5 System.out.println(nowSql);

 

 

 

输出显示

2018七月11 21:49:12
2018-07-11

1 java.sql.Date nowSql=new java.sql.Date(0);
2 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMMdd HH:mm:ss");
3 String time = sdf.format(nowSql);
4 System.out.println(time);
5 System.out.println(nowSql);

输出显示

说明:

通过对比可以看出来,util.Date获得的时间就是系统时间,sql.Date的时间是UNIX时间戳,所以用java.sql.Date(System.currentTimeMillis())同样可以获得当前系统时间。不指定格式直接输出util.Date的时间信息更加详细(Wed Jul 11 21:38:01 CST 2018),sql.Date就比较粗只有日期(2018-07-11),但是sql.Date实际上是有存有更详细的时间信息的,如上测试的结果,将sql.Date得得到的时间进行格式设置后再输出,也是有具体到小时分钟的信息。

注意:

java.util.Date()参数可以为空

java.sql.Date()参数不能为空,可以为java.sql.Date(long)/java.sql.Date(int,int,int)。上述例子java.sql.Date(0),取到的是UNIX时间戳1970年1月1日,所以要利用System.currentTimeMills()获取从UNIX时间戳到系统时间这段时间的毫秒数,作为java.sql.Date()的长整形参数。

 

所以,如要获取系统时间可直接用java.util.Date date=new java.util.Date();



以上是关于java.util.Date和java.sql.Date以及System.currentTimeMillis()涉及到时间的问题的主要内容,如果未能解决你的问题,请参考以下文章

java.sql.date和java.util.date的区别和转换

java.util.Date 和 java.util.Calendar 是不是已弃用?

java.util.Date和java.sql.Date以及System.currentTimeMillis()涉及到时间的问题

java.sql.Date和java.util.Date的区别

java.util.Date和java.sql.Date的区别及应用

高效开发:java.util.Date和java.sql.Date两者区别