1

我需要在从数据库中检索到的输入掩码中显示一个日期。数据库中的日期格式如下:

EEE MMM dd HH:mm:ss zzz yyyy

这是一个字符串。

我需要它在文本框中显示为:

MM/dd/yyyy

我使用如下代码,

<p:inputMask mask="99/99/9999" value="#{iterator.displayValue}" id="ObjectDate"/>

数据库中的我的 Bean 值是:Fri Mar 31 00:00:00 IST 2045。但文本框中显示的值是:31/00/0000。它无法正确识别格式。此外,如果我将值检索为 Date 对象,它工作正常。有没有办法解决这个问题?

提前致谢。

4

1 回答 1

1

如果日期作为日期时间存储在数据库中,请使用以下命令:

SELECT DATE_FORMAT(myDate, "%d/%l/%Y") AS formattedDate FROM myTable_ 

更新:

您当前的选择语句是

SELECT IFNULL(concat(DATE_FORMAT(MAX(MY_DATE), '%a %b %d %H:%i:%s '),
             @@system_time_zone,DATE_FORMAT(MAX(MY_DATE),' %Y')),'')
       AS VALUES, FROM table_name where id = some_id;

将其替换为:

SELECT IFNULL(concat(DATE_FORMAT(MAX(MY_DATE), '%a %b %d %H:%i:%s '),
             @@system_time_zone,DATE_FORMAT(MAX(MY_DATE),' %Y')),'')
       AS VALUES,
       DATE_FORMAT(MAX(MY_DATE), "%d/%l/%Y") AS formattedDate
       FROM table_name where id = some_id;

这样,您VALUES现在仍然可以使用它。并且可以formattedDate用来显示。

于 2016-03-04T17:31:55.090 回答