-
java.util.Date、java.sql.Date、java.sql.Timestamp区别和总结
- 网站名称:java.util.Date、java.sql.Date、java.sql.Timestamp区别和总结
- 网站分类:技术文章
- 收录时间:2025-06-08 15:52
- 网站地址:
“java.util.Date、java.sql.Date、java.sql.Timestamp区别和总结” 网站介绍
在web开发中,避免不了对日期的操作,就几种常见的日期操作做个总结(部分参考网络,在此表示感谢):
java.util.Date、java.sql.Datej、java.sql.Timestamp
java.lang.Object
....|__java.util.Date
..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time
....|__java.security.Timestamp
java.util.Date日期格式为:年月日时分秒
java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据
java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒)
关系:
java.util.Date这个类是java.sql.Date, java.sql.Time, java.slq.Timestamp这三个类的父类。这三个类对java.util.Date类进行了包装。
联系:
java.sql.Date类屏蔽了java.util.Date类的时间有关的方法(形如:hh:mm:ss),因此,不可以通过这个类访问时间有关的信息,比如,如果你通过sqlDate.getHour()方法去访问小时信息,此方法会抛出一个[IllegalArgumentException](
http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/lang/IllegalArgumentException.html "java.lang 中的类")``异常。这是因为java.sql.Date在继承java.util.Date类的时候对父类进行了重写,禁用了时间访问的方法。之所以这么处理,是为了和数据库的Date数据类型相匹配,数据库的Date数据类行只是保存日期有关的字段。
Java.sql.Time类屏蔽了java.util.Date的日期有关的字段(形如:yyyy-MM-dd),因此,不能通过这个类访问日期有关的信息,比如:如果你通过sqlTime.getYear()方法去获取年有关的信息,此方法会抛出一个[IllegalArgumentException](
http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/lang/IllegalArgumentException.html "java.lang 中的类")``异常。这是因为java.sql.Time在继承java.util.Date类的时候对父类进行了重写,禁用了日期访问的方法。之所以这么处理,是为了和数据库的Time数据类型相匹配,数据库的Time数据类行只是保存时间有关的字段。
Java.sql.Timestamp``字段则对java.util.Date这个类进行了扩充,它在java.util.Date类的基础上增加了毫秒的时间访问控制,因此,你可以通过getNanos()方法去获取时间的毫微秒数(注意此处获取的时间是以毫微秒为单位的,1秒等于十亿毫微秒),同样的,这也是为了和数据库中的Timestamp数据类型进行匹配。
理清了上述四个类的关系,那么java.util.Date和java.util.Calendar类有什么关系呢?
Java.util.Calendar类是java.util.Date类的一个更加深入,更加全面的替代。Java.util.Calendar类支持java.util.Date的所有功能,此外,Calendar还引入了多语言,多区域的特性,可以根据需要获取不同区域,不同时区的时间,Calendar还增加了比Date更加方便和快捷的许多操作,如获取一年当中的第几个星期,各个月的天数等便捷的方法。
作者:Grady_Camel
来源:简书
更多相关网站
- 云服务器:SQL数据库超时的原因与解决方法
- 一个时间戳精度问题,引发了一个MySQL血案
- (二十二) 程序员必备: 10秒到0.1秒,亿级数据下MySQL慢查询分析教程
- MySQL各种SQL的执行频率
- PGSQL提取本月跨越的周数及每周的开始结束日期
- '0000-00-00'日期可以存入MySQL吗
- 【SQL】SQL 语法差异大全(PgSQL/MySQL/Oracle/TiDB/OceanBase)
- 了解SQL吗
- SQL用了两年多,分享2个最常用的小技巧
- 从Sql角度,对比学习Python数据处理包pandas
- SqlServer根据身份证号码查询出生日期和年龄
- 吊打面试官(十一)--Java语言中日期处理相关问题总结
- 玩转MySQL的时间类型:Date、DateTime、TimeStamp、Time
- 多表关联查询的性能优化技巧:预关联
- SQL学习:SQL同比分析案例讲解,一看就懂
- 疯传!Java 日期时间底层逻辑大揭秘,看完直接拿捏面试官挖的坑!
- 记一次有意思的 SQL 实现 → 分组后取每组的第一条记录
- 全量跑1小时 vs 增量抽1分钟!选对时间戳&主键增量的ETL方法更省时
- 最近发表
- 标签列表
-
- c++论坛 (14)
- thinkphp6下载 (7)
- 前端论坛 (11)
- mysql 时间索引 (13)
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- 二调符号库 (23)
- oppoa5专用解锁工具包 (8)
- acmecadconverter_8.52绿色版 (25)
- oracle timestamp比较大小 (7)
- chm editor破解版 (7)
- throttlestop防止降频 (9)
- f12019破解 (16)
- 流星蝴蝶剑修改器 (18)
- 联想杜比音效驱动下载 (10)
- np++ (17)
- 算法第四版pdf (14)
- 梦幻诛仙表情包 (36)
- https://www.zxzj.me/ (9)
- 魔兽模型 (23)
- java面试宝典2019pdf (26)
- beamoff下载 (17)
- disk++ (30)