f:convertDateTime返回错误的日期和时间

时间:2014-06-15 15:12:04

标签: oracle hibernate date datetime

我有一个DB表,其中包含DATE类型的字段,我希望以这种格式在用户界面上显示它' dd.mm.yyyy hh:mm:ss'。我使用Hibernate查询并使用以下命令进行转换:

<f:convertDateTime pattern="dd.mm.yyyy hh:mm:ss" />

但结果并非我的预期。

例如:

8.6.2014 03:00:00 (from the DB)  -> 08.00.2014 12:00:00 (in the user interface)
15.6.2014 12:00:00 (from the DB) -> 15.00.2014 12:00:00 (in the user interface)

我在我的web.xml中添加了

<context-param>
        <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
        <param-value>true</param-value>
    </context-param>

我的时区是UTC + 02:00

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

月份用资本代表&#34; M&#34;。在你的情况下,它将是:

<f:convertDateTime pattern="dd.MM.yyyy HH:mm:ss" />

修改

你也应该添加你的时区:

<f:convertDateTime pattern="dd.MM.yyyy HH:mm:ss" timeZone="GMT+2" />

编辑2

如果它不起作用,您可以使用SimpleDateFormat

public static String dateToString(Date date, String format) throws ParseException {
    SimpleDateFormat sdf = new java.text.SimpleDateFormat(format);
    return sdf.format(date);
}

然后:

String newDate = dateToString(myDate, "dd.MM.yyyy HH:mm:ss");