网站首页 > java教程 正文
在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
来源:简书
猜你喜欢
- 2024-12-25 我的世界21w37a:1.18首发快照,生存难度升级!刷怪笼将无视亮度
- 2024-12-25 深入理解Mysql数据存储 mysql数据存储结构是什么
- 2024-12-25 一个有趣的面试题:如何用3个字节存储年月日
- 2024-12-25 如何用控制台打印日历? 如何用控制台打印日历内容
- 2024-12-25 甲骨文7月安全更新:修复113个Java等漏洞
- 2024-12-25 Java语法入门004 java编程语法
- 2024-12-25 100个Java工具类之53:日历类Calendar
- 2024-12-25 Java 阴历阳历转换 java 日期转换 yyyy-mm-dd
- 2024-12-25 Java 操作之RestHighLevelClient查询详解
- 2024-12-25 Oracle公布Java9未来进度表 oracle java doc
你 发表评论:
欢迎- 最近发表
-
- class版本不兼容错误原因分析(class更新)
- 甲骨文Oracle公司为Java的最新LTS版本做出改进
- 「版本发布」Minecraft Java开发版 1.19.4-pre1 发布
- java svn版本管理工具(svn软件版本管理)
- 我的世界1.8.10钻石在第几层(我的世界1.7.2钻石在哪层)
- Java开发高手必备:在电脑上轻松切换多个JDK版本
- 2022 年 Java 开发报告:Java 8 八年不到,开发者都在用什么?
- 开发java项目,选择哪个版本的JDK比较合适?
- Java版本选型终极指南:8 vs 17 vs 21特性对决!大龄程序员踩坑总结
- POI Excel导入(poi excel导入附件)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)