java处理timestamp以及和date转换关系的总结

上传人:飞*** 文档编号:47745835 上传时间:2018-07-04 格式:PDF 页数:13 大小:76.05KB
返回 下载 相关 举报
java处理timestamp以及和date转换关系的总结_第1页
第1页 / 共13页
java处理timestamp以及和date转换关系的总结_第2页
第2页 / 共13页
java处理timestamp以及和date转换关系的总结_第3页
第3页 / 共13页
java处理timestamp以及和date转换关系的总结_第4页
第4页 / 共13页
java处理timestamp以及和date转换关系的总结_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《java处理timestamp以及和date转换关系的总结》由会员分享,可在线阅读,更多相关《java处理timestamp以及和date转换关系的总结(13页珍藏版)》请在金锄头文库上搜索。

1、Java 中 Date 及 Timestamp 时间相关内容(基本上看这一份就可以了)java.util.date java.sql.date java.sql.timestamp 整理一:这里的一片文章,我个人认为讲解的很详细,有对 java.sql.Date的使用还有 困惑的请看。java.sql.Date 只存储日期数据不存储时间数据/ 会丢失时间数据 preparedStatement.setDate(1, new java.sql.Date(date.getTime(); / 可以这样来处理preparedStatement.setTimestamp(1, new java.sql.

2、Timestamp(new java.util.Date().getTime(); / 想要得到完整的数据,包括日期和时间,可以这样java.util.Date d = resultSet.getTimestamp(1); / 这样处理更合适一些,可以避免一些潜在Timestamp 问题java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime(); 自己补的话这样的话:往数据库存储的时候可以接收 java.util.Date类型 再用 getTime() 方法得到代表那个Date 对象的 long 值,再以这

3、个 long 值 构造一个 Timestamp 对象 存进数据库中。从存数据库里取的时候,可以先得到Timestamp用他的 getTime() 方法 得到 long 值,再以这个 long 值构造一个 java.util.Date对象,这样就可以对 这个 Date 对象操作了。不如说 new SimpleTimeFormat(“yyyyy-MM-dd HH:mm:ss“).format()等等整理二:用 Timestamp来记录日期时间还是很方便的, 但有时候显示的时候是不需要小数 位后面的毫秒的,这样就需要在转换为String时重新定义格式。Timestamp 转化为 String:Sim

4、pleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss“);/定义格式,不显示毫秒 Timestamp now = new Timestamp(System.currentTimeMillis();/获取系统当 前时间 String str = df.format(now); String转化为 Timestamp: SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss“); String time = df.format(new Date(); Time

5、stamp ts = Timestamp.valueOf(time); 整理三:在 ResultSet中我们经常使用的setDate 或 getDate 的数据类型是 java.sql.Date,而在平时 java 程序中我们一般习惯使用 java.util.Date。因 此在 DAO 层我们经常会碰到这俩种数据类型的相互转换,经过了一个下午的折 腾,鄙人对两者的转换方法做出了小小总结,希望大家不吝指教。 两者的关系java.lang.Object | +-java.util.Date | +-java.sql.Date 从这个图中我们可以知道java.sql.Date是从 java.util

6、.Date继承过来的。相互转换 1. 使用 getTime() 函数 这两个类都提供了getTime() 函数,用于返回对应的毫秒数(long 类型)。利用 这个函数可以实现转换:java.util.Date utilDate = new java.util.Date(sqlDate.getTime(); / sql - util java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime(); / util - sql 2. 使用 SimpleDateFormat 类实现转换 SimpleDateFormat 是一个以国别敏感的方式格

7、式化和分析数据的具体类。它允 许格式化 (date - text)、语法分析 (text - date)和标准化。 SimpleDateFormat dateFormat = new SimpleDateFormate(“yyyy-MM-dd HH:mm:ss“); java.util.Date utilDate = dateFormat.parse(sqlDate.toString(); 3. 直接转换 由于 java.sql.Date是从 java.util.Date中继承过来的,所以可以直接用: utilDate = sqlDate; 4. 另类获得日期的方法: SimpleDateFo

8、rmat sy=new SimpleDateFormat(“yyyy“); SimpleDateFormat sm=new SimpleDateFormat(“MM“); SimpleDateFormat sd=new SimpleDateFormat(“dd“); String syear=sy.format(date); String smon=sm.format(date); String sday=sd.format(date); ps: java.util.Date类中的 getYear() 要加上 1900才可得到实际值,getMonth() 则要加上 1 有关 java 中的 D

9、ate,String,Timestamp 之间的转化问题一. 获取系统当前时间 : 1System.out.println(new Timestamp(new java.util.Date().getTime); /包含时分 秒 2 System.out.println(new java.sql.Date(new java.util.Date().getTime); /不包含时 分秒 3. 通过格式化类获取任意格式的时间SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd kk:mm:ss SSS“); String time = sd

10、f.format(Calendar.getInstance().getTime(); System.out.println(time); sql 包的 Date 类没有无参的构造函数,而util的 Date 类有无参的构造函数java.util.Date date = new java.util.Date();是正确的 /Tue Jun 15 09:04:23 CST 2010 java.sql.Date date = new java.sql.Date();是错误的 但是 sql 包的 Date 有一个带 long 型参数的构造函数,因此可以使用以下方式java.sql.Date date

11、= new java.sql.Date(new java.util.Date().getTime(); /2010-6-17 new java.util.Date():构造函数没有接受任何参数. 而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期. 下面是 util 包的 Date 的构造方法 :public Date() this(System.currentTimeMillis(); 还发现一件怪异的事情 : / String转化成 date String str = “9-29-2001“; System.out.println(java

12、.sql.Date.valueOf(str); 输出: 0016-10-21 真是奇怪 .三. Date转化成 String/Date转化成 String: SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss SSS“); System.out.println(sdf.format(new Date(); 输出: 2010-06-17 16:30:21 781 四. Timestamp 转化成 String SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd

13、HH:mm:ss“);/ 定义格式,不显示毫秒Timestamp now = new Timestamp(System.currentTimeMillis();/获取系统当 前时间String str = df.format(now); System.out.println(str); 输出: 2010-06-17 16:46:34 五. String转化成 Timestamp SimpleDateFormat df1 = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss“); java.util.Date date11 = df1.parse(“2010-6

14、-2 16:10:38.00“); String time = df1.format(date11); Timestamp ts = Timestamp.valueOf(time); System.out.println(ts); 输出: 2010-06-02 16:10:38.0 引用 还发现一件怪异的事情 : / String转化成 date String str = “9-29-2001“; System.out.println(java.sql.Date.valueOf(str); Date#valueOf(String)的 String格式都是 yyyy-mm-dd. 引用五. St

15、ring转化成 Timestamp SimpleDateFormat df1 = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss“); java.util.Date date11 = df1.parse(“2010-6-2 16:10:38.00“); String time = df1.format(date11); Timestamp ts = Timestamp.valueOf(time); System.out.println(ts); 这样的构造是没有效率的, Timestamp 是 java.util.Date的子类,可以这么做: new Tim

16、estamp(java.util.Date#getTime(); 段箭 * 残箫 写道还发现一件怪异的事情 : / String转化成 date String str = “9-29-2001“; System.out.println(java.sql.Date.valueOf(str); 输出: 0016-10-21真是奇怪 .你从公元 9 年 1 月 1 日算起 , 加上 2001天, 和 29个月, 时间就是公元 16 年 10 月 21日Timestamp 是由 java.util.Date和单独的毫微秒值组成。只有整数秒才会存储在 java.util.Date组件中。小数秒(毫微秒)是独立存在的。传递java.util.Date类型的值时,Timestamp.equals(Objec

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号