写一个接口,获取数据库时间。
public Date getTimeDate() throws SQLException;
/**
* 获取日期类型的时间 格式 yyyy-MM-dd HH24:mi:ss
* @Title getTimeDate
* @param 无
* @return String
* @throws SQLException
*/
@Override
public Date getTimeDate() throws SQLException {
return DateUtils.parseDate(getDataBaseTime(dao, DEFAULT_DATETIME_FORMAT_SEC), 0);
}
定义一个常量:private static final String DEFAULT_DATETIME_FORMAT_SEC = "yyyy-MM-dd HH24:mi:ss";
具体实现方法:
/**
* 获取数据库时间
* @Title getDataBaseTime
* @param dao 数据源 format 时间格式
* @return String
* @throws SQLException
*/
private static String getDataBaseTime(IBaseZrarDao dao, String format) throws SQLException{
String str = "";
//从数据库获取时间格式字符串
StringBuffer sb = new StringBuffer();
sb.append("select to_char(sysdate,'"+format+"') a from dual");
List<String> paramList = new ArrayList<String>();
CachedRowSet rs = null;
try{
rs = dao.getRowSet(sb.toString(), paramList);
if (rs.next()) {
str = rs.getString(1);
}
}catch( SQLException e ){
throw e;
}finally{
rs.close();
}
return str;
}
为啥这么写一个接口呢?是因为当前的时间跟数据库的系统时间还是存在一定的差异。取数据库的时间是因为存数据在表中,时间保持一致!