前段时间,我在修改项目中的bug时,遇到这样一个问题:数据库中有个字段是date类型,Java后台查询出来的结果形式是YYYY-MM-DD HH:MM:SS格式,如“2014-12-12 12:23:21”,但是在前台导出时这个却变成了“2014-12-12 12:23:21.0”,结果后面多了一个“.0”。后来,我也查询了好多资料,可是没有一个有关这方面的,随后我自己反复思考,找到了办法,具体办法参考以下:
前期准备工作(包括相关工具或所使用的原料等)MyEclipse10JDK1.6Tomcat7.0.x 方法一:
这里,新建一个Java封装Card.java,为了举例说明,只放了两个属性
/**
* 创建时间
*/
private String createDate;
/**
* 创建人
*/
private String createPerson;
并且给这两个属性get和set方法,如下图所示:

接着,新建一个Java接口CardDao.java,并在其中创建一个方法
public List
如下图所示:

然后,创建一个类,继承CardDao接口
public class CardDaoImpl implements CardDao
{
public List
{
List
StringBuilder sql=new StringBuilder();
sql.append("select ");
sql.append("to_char(create_date,'YYYY-MM-DD HH24:MI:SS') as create_date ");
sql.append("from t_card_info ");
return list;
}
}
如下图所示:

这样,可以让导出的结果显示“2014-12-12 12:23:21”,而不是“2014-12-12 12:23:21.0”
方法二:
在承接方法一中的第三步,不用将字段“create_date”格式化,而是在查询结果时截取

封装查询结果时,直接获取除了“.0”之外的字符串
Card card=null;
card.setCreateDate(list.get(0).toString().substring(0, 18));
如下图所示:

的确,这种方法可以得到所需要的格式,不过前提是,查询出来的结果形式必须是所需要的;如果不是,也得转换成需要的格式
注意事项第一种方法需要明确知道时间格式为24小时制第二种方法在封装结果前,将该结果转换成需要的时间格式经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本教程系本人依照真实经历原创,未经许可,谢绝转载。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
