Date 使用dataTable primefaces列的日期转换器
我使用的是primefaces,我有一个datatable,它包含3列:DateStart、DateEnd和NombreOfDay,我想得到DateStart和DateEnd之间的差异,并将结果放在NombreOfDay上,这就是我尝试做的:Date 使用dataTable primefaces列的日期转换器,date,jsf,primefaces,Date,Jsf,Primefaces,我使用的是primefaces,我有一个datatable,它包含3列:DateStart、DateEnd和NombreOfDay,我想得到DateStart和DateEnd之间的差异,并将结果放在NombreOfDay上,这就是我尝试做的: <p:dataTable var="demande" value="#{myBean.allDemandes}"> <p:column headerText="Start:" > <h:outputText val
<p:dataTable var="demande" value="#{myBean.allDemandes}">
<p:column headerText="Start:" >
<h:outputText value="#{myBean.dateStart}" >
<f:convertDateTime type="date" pattern="dd.MM.yyyy" timeZone="CET" /> </h:outputText></p:column>
<p:column headerText="End:" >
<h:outputText value="#{myBean.dateEnd}" >
<f:convertDateTime type="date" pattern="dd.MM.yyyy" timeZone="CET" /></h:outputText>
</p:column>
<!-- Nombre of days between two date -->
<p:column headerText="Nbr" >
<h:outputText value="#{demande['dateEnd']-demande['dateStart']}" >
</h:outputText>
</p:column>
有什么想法吗?你不能按你尝试的方式减去
日期
对象。-
运算符希望参数是一个数字(或者至少可以强制转换)。这就是异常发生的地方。结果会是什么呢?天?分钟
在bean中执行逻辑,即为此编写一个新方法。
通过这种方式,您将得到如下结果:
<h:outputText value="#{myBean.calcDurationInDays(demande)}" />
在java中,有许多线程和库可以用来获取到日期之间的差异,例如:您不能按您尝试的方式减去
日期对象。-
运算符希望参数是一个数字(或者至少可以强制转换)。这就是异常发生的地方。结果会是什么呢?天?分钟
在bean中执行逻辑,即为此编写一个新方法。
通过这种方式,您将得到如下结果:
<h:outputText value="#{myBean.calcDurationInDays(demande)}" />
在java中,有许多线程和库可以用来获取到日期之间的差异,例如:您不能按您尝试的方式减去日期对象。-
运算符希望参数是一个数字(或者至少可以强制转换)。这就是异常发生的地方。结果会是什么呢?天?分钟
在bean中执行逻辑,即为此编写一个新方法。
通过这种方式,您将得到如下结果:
<h:outputText value="#{myBean.calcDurationInDays(demande)}" />
在java中,有许多线程和库可以用来获取到日期之间的差异,例如:您不能按您尝试的方式减去日期对象。-
运算符希望参数是一个数字(或者至少可以强制转换)。这就是异常发生的地方。结果会是什么呢?天?分钟
在bean中执行逻辑,即为此编写一个新方法。
通过这种方式,您将得到如下结果:
<h:outputText value="#{myBean.calcDurationInDays(demande)}" />
关于如何在java中获取到日期之间的差异,有许多线程和库,例如:EL中的-
操作符仅在上操作。不是它的一个子类。您需要通过返回long
格式的历元时间(以毫秒为单位)的方法从中获取原始时间戳,在EL中,它被解释为java.lang.Number
的一个完整的子类
因此,基本上,下面将以毫秒为单位打印差异:
<p:column headerText="Nbr">
#{demande.dateEnd.time - demande.dateStart.time}
</p:column>
如果您想考虑DST的影响,那么您最好在Java端完成这项工作,最好使用可重用的。JSF实用程序库有一个现成的工具():
#{of:daysBetween(demande.dateStart,demande.dateEnd)}
EL中的-
操作员仅在上操作。不是它的一个子类。您需要通过返回long
格式的历元时间(以毫秒为单位)的方法从中获取原始时间戳,在EL中,它被解释为java.lang.Number
的一个完整的子类
因此,基本上,下面将以毫秒为单位打印差异:
<p:column headerText="Nbr">
#{demande.dateEnd.time - demande.dateStart.time}
</p:column>
如果您想考虑DST的影响,那么您最好在Java端完成这项工作,最好使用可重用的。JSF实用程序库有一个现成的工具():
#{of:daysBetween(demande.dateStart,demande.dateEnd)}
EL中的-
操作员仅在上操作。不是它的一个子类。您需要通过返回long
格式的历元时间(以毫秒为单位)的方法从中获取原始时间戳,在EL中,它被解释为java.lang.Number
的一个完整的子类
因此,基本上,下面将以毫秒为单位打印差异:
<p:column headerText="Nbr">
#{demande.dateEnd.time - demande.dateStart.time}
</p:column>
如果您想考虑DST的影响,那么您最好在Java端完成这项工作,最好使用可重用的。JSF实用程序库有一个现成的工具():
#{of:daysBetween(demande.dateStart,demande.dateEnd)}
EL中的-
操作员仅在上操作。不是它的一个子类。您需要通过返回long
格式的历元时间(以毫秒为单位)的方法从中获取原始时间戳,在EL中,它被解释为java.lang.Number
的一个完整的子类
因此,基本上,下面将以毫秒为单位打印差异:
<p:column headerText="Nbr">
#{demande.dateEnd.time - demande.dateStart.time}
</p:column>
如果您想考虑DST的影响,那么您最好在Java端完成这项工作,最好使用可重用的。JSF实用程序库有一个现成的工具():
#{of:daysBetween(demande.dateStart,demande.dateEnd)}
谢谢@jp jee我遵循你的建议,我使用了Joda Time API,因此成为easythanks@jp jee我遵循你的建议,我使用了Joda Time API,因此成为easythanks@jp jee我遵循你的建议,我使用了Joda Time API,因此成为easythanks@jp jee我遵循你的建议,因此使用了Joda Time API这变得很容易