来自db表的Java格式化日期输出

时间:2017-05-21 11:55:02

标签: java date

好的,首先要说我几天都在搜索如何解决这个问题,而且我已经尝试过百万种方式,但我认为这两种方式都不适用于我,或者我认为遗失了什么。

我有一个包含列类型日期的数据库表。 我有一个带有字段Date的模型类。

public class Pacijent {
    //..
    private Date datum;
    //getters and setters 
}

一个Data访问对象,用于检索和存储到这样的模型类中:

ResultSet rs = ps.executeQuery();
while(rs.next()) {
    Pacijent pacijent = new Pacijent();
    //..
    pacijent.setDatum(rs.getDate("datum"));
    //..
    pacijents.add(pacijent);
}

接下来,我在控制器中设置set属性,并在jsp页面中检索它,如${param.paramName}

问题是它在yyyy-MM-dd输出,我希望它显示在dd-MM-yyyy中。你能指导我如何以正确的方式格式化它吗?

2 个答案:

答案 0 :(得分:2)

JSTL fmt库有一个formatDate标记用于此目的。要使用它,首先将此指令放在JSP的<head>元素中:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 

然后在页面正文中,您可以编写类似

的内容
<fmt:formatDate value="${date}" pattern="dd-MM-yyyy"/>

fmt:formatDate的文档就是here。您可能还需要信息here 以便弄清楚如何构建适当的格式模式。

答案 1 :(得分:1)

这可能不是最佳选择,但一个选项是在Pacijent类中公开一个字符串getter,它使用SimpleDateFormat以您想要的格式生成日期字符串:< / p>

class Pacijent {
    // other content

    public String getDateFormatted() {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/M/yyyy");
        String date = sdf.format(datum);
        return date;
    }
}

然后,从JSP访问此getter。

相关问题