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();

原文地址:https://www.cnblogs.com/SCP1927/p/9297412.html

时间: 2024-11-05 11:55:20

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

java util IllegalFormatConversionException d java lang S

1.错误描述 java.util.IllegalFormatConversionException: d != java.lang.String at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4045) at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2748) at java.util.Formatter$Format

工作积累(二)——使用java.util.ResourceBundle和java.util.Properties实现常量功能

在 Java 中我们往往通过定义常量来使用一些值,方便我们进行修改配置,如: public classConstant {   public static final String IMG_ORI_PATH = "ori/";   public static final String IMG_THUMB_PATH = "thumb/";   -- } 这样我们在其他类中可以直接使用 Constant.IMG_ORI_PATH 来代替 "ori/"

2016.6.30 java.util.concurrent.ExecutionException java.lang.OutOfMemoryError

选中ccs项目后,选择debug on server,但是运行到一半,跳出错误: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space 我就想,是不是我运行的web程序太多了,于是我就删掉了server下的其他项目,再次运行就成功了.

java.util.HashMap和java.util.HashTable (JDK1.8)【转】

一.java.util.HashMap 1.1 java.util.HashMap 综述 java.util.HashMap继承结构如下图 HashMap是非线程安全的,key和value都支持null HashMap的节点是链表,节点的equals比较的是节点的key和value内容是否相等. 1 static class Node<K,V> implements Map.Entry<K,V> { 2 final int hash; 3 final K key; 4 V valu

本地启动tomcat的时候报内存溢出错误:java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space

问题分析: PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在we

invalid comparison: java.util.ArrayList and java.lang.String——bug解决办法

今天碰到个问题,解决了很久才搞定,来记录下,希望可以帮助到大家 贴错误源码: 这是一个根据list集合的查找数据的 sql,在接收list的时候加了判断 list != ' ' "",引起了集合与Stirng类型的比较,故报错 <if test="list != null and list != ''"> and ul.loan_id in <foreach collection="list" index="index

java.util.NoSuchElementException at java.util.AbstractList$Itr.next(AbstractList.java:350) at

我的解决方案是,我的struts2 标签中 自己 添加了一个 <s:select  list="#{'0':'待处理','1':'处理中'}"  readOnly="" headerKey="-1" headerValue="请选择" listKey="key" listValue="value" /> readOnly ,去掉即可.

java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结 转

java.util.Date.java.sql.Date.java.sql.Time.java.sql.Timestamp区别和总结 java.lang.Object ....|__java.util.Date ..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time [父类]java.util.Date日期格式为:年月日时分秒 [子类]java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据] [子类]java.

java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结

final SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.US);//dd/MM/yyyy final Date now = new Date(); System.out.println(now); final String strDate = sdfDate.format(now); System.out.println(strDate); final Timesta