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的区别
- 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的区别