当前位置: 代码迷 >> SQL >> java.sql.Date 和 java.sql.TimeStamp 时间格式存储有关问题
  详细解决方案

java.sql.Date 和 java.sql.TimeStamp 时间格式存储有关问题

热度:206   发布时间:2016-05-05 12:02:06.0
java.sql.Date 和 java.sql.TimeStamp 时间格式存储问题

向数据库中插入时间属性,

[java] view plaincopy
  1. SimpleDateFormat?simpleTime?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss");//定义日期格式??默认时间格式:yyyy-MM-dd?HH:mm:ss??
  2. //SimpleDateFormat?simpleDate?=?new?SimpleDateFormat("yyyy-MM-dd");??
  3. String?passTime?=?pwoEditForm.getPasstime();??
  4. java.util.Date?passUtilDate?=?simpleTime.parse(passTime);??
  5. java.sql.Date?passSqlDate?=?new?java.sql.Date(passUtilDate.getTime());??
  6. pwOrder.setPasstime(passSqlDate);??


数据插入了,但是并没有按照定义好的yyyy-MM-dd HH:mm:ss格式插入,而是yyyy-MM-dd的格式,导致时分秒数据丢失!

以下是数据库中查询的系统时间格式:

[sql] view plaincopy
  1. --alter?session?set?NLS_date_format?='yyyy-mm-dd?hh24:mi:ss';??
  2. select?sysdate?from?dual;??
  3. --2011-9-23?18:35:53??

经过测试java.sql.Date只能取出年月日,而时分秒是取不到的。
所以改用java.sql.TimeStamp来处理,如下:

[java] view plaincopy
  1. SimpleDateFormat?simpleTime?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss");//定义日期格式??默认时间格式:yyyy-MM-dd?HH:mm:ss??
  2. //SimpleDateFormat?simpleDate?=?new?SimpleDateFormat("yyyy-MM-dd");??
  3. String?passTime?=?pwoEditForm.getPasstime();??
  4. java.util.Date?passUtilDate?=?simpleTime.parse(passTime);??
  5. java.sql.TimeStamp?passSqlDate?=?new?java.sql.TimeStamp(passUtilDate.getTime());??
  6. pwOrder.setPasstime(passSqlDate);??

这样插入数据库有就是完整的格式了。

要求java实体类定义时,也要将相关字段定义为java.sql.TimeStamp类型即可,当然hibernate对应的type也要写成timestamp

?

---------------------------------2012.02.09 Timestamp时间戳类的格式处理 --------------------------------------------

[java] view plaincopy
  1. long?currTime?=?System.currentTimeMillis();??
  2. Timestamp?timeObj?=?new?Timestamp(currTime);????????????//yyyy-MM-dd?HH:mm:ss:mis??
  3. //System.out.println("timeObj----->"+timeObj);??????????//timeObj----->2012-02-09?14:56:55.401??
  4. String?gjsj?=?timeObj.toString().substring(0,19);???????//yyyy-MM-dd?HH:mm:ss??
  5. //System.out.println("gjsj----->"+gjsj);????????????????//gjsj----->2012-02-09?14:56:55?
  相关解决方案