问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java.sql.date与java.util.date区别?

发布网友 发布时间:2022-04-07 17:02

我来回答

9个回答

懂视网 时间:2022-04-07 21:23

demo; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class TestData { public static void main(String[] args) throws ParseException { Date d = new Date(new Date().getTime()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowday1 = "2015-5-12 10:30:12"; String nowday2 = "2015-05-12 10:30:12"; Timestamp tt = new Timestamp(System.currentTimeMillis()); System.out.println(sdf.format(d));//Date -> String System.out.println(sdf.parse(nowday1)); // String -> Date System.out.println(sdf.format(tt)); // Timestamp -> String System.out.println(tt.valueOf(nowday2));//String -> Timestamp :String的类型必须形如: yyyy-mm-dd hh:mm:ss[.f...] 这样的格式,中括号表示可选,否则报错 System.out.println(d=tt); // Timestamp -> Date 因为是父类直接向上转型 System.out.println(new Timestamp(d.getTime())); // Date ->Timestamp } } /* * oracle中Date与Timestamp转换 * SELECT TO_TIMESTAMP(TO_CHAR(SYSDATE, ‘YYYY-MM-DD HH24:MI:SS‘), ‘YYYY-MM-DD HH24:MI:SS‘) FROM dual; * SELECT TO_DATE(TO_CHAR(TO_TIMESTAMP(TO_CHAR(SYSDATE, ‘YYYY-MM-DD HH24:MI:SS‘), ‘YYYY-MM-DD HH24:MI:SS‘),‘YYYY-MM-DD HH24:MI:SS‘),‘YYYY-MM-DD HH24:MI:SS‘) FROM dual; * * */ /** 2015-05-12 10:44:15 Tue May 12 10:30:12 CST 2015 2015-05-12 10:44:15 2015-05-12 10:30:12.0 2015-05-12 10:44:15.108 2015-05-12 10:44:15.108 **/

java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和联系

标签:jdk   web开发   

热心网友 时间:2022-04-07 18:31

JAVA里提供的日期和时间类,java.sql.Date和java.sql.Time,只会从数据库里读取某部分值,这有时会导致丢失数据。例如一个包含2002/05/22 5:00:57 PM的字段,读取日期时得到的是2002/05/22,而读取时间时得到的是5:00:57 PM.
你需要了解数据库里存储时间的精度。有些数据库,比如MySQL,精度为毫秒,然而另一些数据库,包括Oracle,存储SQL DATE类型数据时,毫秒部分的数据是不保存的。以下操作中容易出现不易被发现的BUG:获得一个JAVA里的日期对象。
从数据库里读取日期
试图比较两个日期对象是否相等。如果毫秒部分丢失,本来认为相等的两个日期对象用Equals方法可能返回false。.sql.Timestamp类比java.util.Date类精确度要高。这个类包了一个getTime()方法,但是它不会返回额外精度部分的数据,因此必须使用getNanos()方法。有毫微秒部分(即额外精度部分)的数值可能比没有这个部分的数值的大一个毫秒。如果你知道你使用的数据库保存了毫秒部分,可以用下面的代码获得的数值:
long time=timestamp.getTime()+timestamp.getNanos()/1000000;
毫微秒的部分就是为什么一个java.sql.Timestamp对象不等于一个java.util.Date对象,而一个java.util.Date对象可能等于一个java.sql.Timestamp对象的原因。这使得equals方法应当保持的对称被打破了。使用java.sql包中的时间相关的类是重要的,但是它们也可能导致人为的错误。这是因为,这些类的复杂性虽然已经在javadoc里面清楚的描述了,但是由于这些类看上去很简单而很少有人看这些文档。

热心网友 时间:2022-04-07 19:49

java.util.Date 就是在除了SQL语句的情况下使用。
java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分,它都有getTime方法返回毫秒数,自然就可以直接构建
java.util.Date d = new java.util.Date(sqlDate.getTime());


java.util.Date 是 java.sql.Date 的父类
前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他。后者之后在读写数据库的时候用他,因为PreparedStament的setDate()的第2参数和ResultSet的getDate()方法的第2个参数都是java.sql.Date 
转换是
java.sql.Date date=new Java.sql.Date();
java.util.Date d=new java.util.Date (date.getTime());
反过来是一样的


继承关系:java.lang.Object --》 java.util.Date --》 java.sql.Date
具体的转换关系就是java.util.Date d=new java.util.Date (new Java.sql.Date());


热心网友 时间:2022-04-07 21:24

两者区别如下:

java.util.Date是在除了SQL语句的情况下面使用的。
java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分


它们都有getTime方法返回毫秒数,自然就可以直接构建。 

java.util.Date 是 java.sql.Date 的父类,前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用它,后者之后在读写数据库的时候用它。


互相转化方法如下:

java.sql.Date转为java.util.Date
java.util.Date d=new java.util.Date (date.getTime());


java.util.Date转为java.sql.Date
java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());

热心网友 时间:2022-04-07 23:15

类 java.util.Date表示特定的瞬间,精确到毫秒。 

java.sql.Date一个包装了毫秒值的瘦包装器 (thin wrapper),它允许 JDBC 将毫秒值标识为 SQL DATE 值。毫秒值表示自
1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数。为了与 SQL DATE 的定义一致,由 java.sql.Date
实例包装的毫秒值必须通过将小时、分钟、秒和毫秒设置为与该实例相关的特定时区中的零来“规范化”。 

java.sql.Date为 java.util.Date的一个子类,继承了java.util.Date中的方法,只不过两者的tostring()不同, java.sql.Date对其惊醒了重写,java.util.Date把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz
yyyy 输出,而 java.sql.Date 则格式化日期转义形式 yyyy-mm-dd 的日期。

sql.date对应数据库中的date类型,而父类util.date为Java里的对象类型

热心网友 时间:2022-04-08 01:23

java.sql.Date只包含年月日信息
java.util.Date 包含年月日时分秒毫秒

热心网友 时间:2022-04-08 03:48

菜鸟 因为一个是sql 一个是util

热心网友 时间:2022-04-08 06:29

java.util.Date 就是Java的日期对象
java.sql.Date 是针对SQL语句使用的,只包含日期而没有时间部分

热心网友 时间:2022-04-08 09:27

java.sql.Date是java.util.Date的子类,是一个包装了毫秒值的瘦包装器,允许 JDBC 将毫秒值标识为 SQL DATE 值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数。 为了与 SQL DATE 的定义一致,由 java.sql.Date 实例包装的毫秒值必须通过将时间、分钟、秒和毫秒设置为与该实例相关的特定时区中的零来“规范化”。 说白了,java.sql.Date就是与数据库Date相对应的一个类型,而java.util.Date是纯java的Date。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 求管理学基础教材中五个关键词并加以解释 管理学基础 三大领导理论的内容 管理学基础知识 管理学基础知识有那些?? 管理学基础的重点内容 管理学基础知识重点 《管理学原理(第三版)》这门课程第六章的知识点有哪些? 许姓男孩姓名大全 真厉害链商APP的商城页面的今日主推商品是不是经常更换啊?有人买过吗? 姓许的男孩名字两个字? 大众朗逸OBD接口在哪里 帮我取一个女孩和男孩的名字,姓许,两个字的 OBD在哪里谢谢? 仌选商城成立时间, 卷轴模式能活多久,- 问一问 武汉到浙江千岛湖路桥费 平安保险想退保怎么整? 介绍下 武汉人游玩杭州千岛湖黄山,恳请有经验的驴友给点答案 武汉到千岛湖有多远 平安退保险能退回多少钱,怎么计算 从武汉自驾游富春江、新安江、千岛湖一线怎么走 为什么会晚上睡不着,早上睡不醒,这是怎么回事? 尼龙线怎么绑鱼钩结实,麻烦详细解读,最好钓友自己用的绑法 如何修复损坏excel文件?(加了密码的~) 最近一直失眠,在床上翻来覆去睡不着,得凌晨两点半左右才能睡下,早上8点多起床,怎样可以快快入睡? 上飞机液体不能超过多少毫升? 为什么我不管早睡还是晚睡都是清晨3—4点就醒了,然后就是打好多哈欠翻来覆去可就是睡不着啊?这种情况 跪求 能修复Microsoft Excel文件的破解软件 翻来覆去的睡不着,我是怎么了 翻来覆去睡不着?怎么办? 睡眠质量不高该如何提高?每天晚上躺着床上是翻来覆去睡不着,早上快起床的时候睡眠非常浅,一有动静就醒 Excel文件受损如何修复? 您好!最近几天不知道什么原因早晨天刚亮就醒,醒来后翻来覆去睡不着,还感觉胸口难受,请问这是什么原因 女儿喜欢哭,个性比较娇气,怎么改善? word文档怎样做简历 如何绑鱼钩最结实图解 教师怎样教育自私 任性 娇气的小学生 父母要怎么纠正孩子的故意调皮行为? 小孩太娇气了动不动就哭怎么灭 高速公路办ETC需要哪些资料,在什么地方办。 如何纠正男孩子的娇气