如何在不将日期格式转换为字符串的情况下将日期格式转换为另一种格式?

How to convert date format to another format without making it string?

我有一个表格,在插入数据时,日期以这种格式插入数据库中:

2017-04-01 00:00:00.0

这是将日期插入数据库的组件

                            <p:outputLabel for="dateFin" value="Date fin"/>
                        <p:calendar id="dateFin" value="#{etpBean.dateFin}"  required="true">
                        </p:calendar>

这是我的组件

                        <p:outputLabel for="dateDebut" value="Date Debut"/>
                    <p:calendar id="dateDebut" value="#{etpBean.dateDebut}" required="true">
                    <p:ajax event="dateSelect" listener="#{etpBean.onDateDebutChange}"/>
                    </p:calendar>

并且在这种按日期搜索的形式中是相同的组件,然后当我选择日期进行按日期搜索并将其显示在我的 bean 中时,它采用这种格式

Sun Apr 30 00:00:00 GMT 2017

所以我从数据库中恢复的列表总是空的,因为它的格式不同

你有点糊涂了。日期不会改变它的外观。 <p:calendar> 有其(可能取决于本地)格式,它应该与您在另一个视图中可视化时应用的格式不同。 TTimeStemp 值的视觉格式可以通过 <f:convertDateTime> 子标签设置:

<h:inputText value="#{bean.date}">
    <f:convertDateTime pattern="MM/dd/yyyy" />
</h:inputText>

<p:calendar value="#{bean.date}">
    <f:convertDateTime pattern="MM/dd/yyyy" />
</p:calendar>