向数据库中插入时间属性,
- SimpleDateFormat?simpleTime?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss");//定义日期格式??默认时间格式:yyyy-MM-dd?HH:mm:ss??
- //SimpleDateFormat?simpleDate?=?new?SimpleDateFormat("yyyy-MM-dd");??
- String?passTime?=?pwoEditForm.getPasstime();??
- java.util.Date?passUtilDate?=?simpleTime.parse(passTime);??
- java.sql.Date?passSqlDate?=?new?java.sql.Date(passUtilDate.getTime());??
- pwOrder.setPasstime(passSqlDate);??
数据插入了,但是并没有按照定义好的yyyy-MM-dd HH:mm:ss格式插入,而是yyyy-MM-dd的格式,导致时分秒数据丢失!
以下是数据库中查询的系统时间格式:
- --alter?session?set?NLS_date_format?='yyyy-mm-dd?hh24:mi:ss';??
- select?sysdate?from?dual;??
- --2011-9-23?18:35:53??
经过测试java.sql.Date只能取出年月日,而时分秒是取不到的。
所以改用java.sql.TimeStamp来处理,如下:
- SimpleDateFormat?simpleTime?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss");//定义日期格式??默认时间格式:yyyy-MM-dd?HH:mm:ss??
- //SimpleDateFormat?simpleDate?=?new?SimpleDateFormat("yyyy-MM-dd");??
- String?passTime?=?pwoEditForm.getPasstime();??
- java.util.Date?passUtilDate?=?simpleTime.parse(passTime);??
- java.sql.TimeStamp?passSqlDate?=?new?java.sql.TimeStamp(passUtilDate.getTime());??
- pwOrder.setPasstime(passSqlDate);??
这样插入数据库有就是完整的格式了。
要求java实体类定义时,也要将相关字段定义为java.sql.TimeStamp类型即可,当然hibernate对应的type也要写成timestamp
?
---------------------------------2012.02.09 Timestamp时间戳类的格式处理 --------------------------------------------
- long?currTime?=?System.currentTimeMillis();??
- Timestamp?timeObj?=?new?Timestamp(currTime);????????????//yyyy-MM-dd?HH:mm:ss:mis??
- //System.out.println("timeObj----->"+timeObj);??????????//timeObj----->2012-02-09?14:56:55.401??
- String?gjsj?=?timeObj.toString().substring(0,19);???????//yyyy-MM-dd?HH:mm:ss??
- //System.out.println("gjsj----->"+gjsj);????????????????//gjsj----->2012-02-09?14:56:55?