Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 使用dataTable primefaces列的日期转换器_Date_Jsf_Primefaces - Fatal编程技术网

Date 使用dataTable primefaces列的日期转换器

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

我使用的是primefaces,我有一个datatable,它包含3列:DateStart、DateEnd和NombreOfDay,我想得到DateStart和DateEnd之间的差异,并将结果放在NombreOfDay上,这就是我尝试做的:

 <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这变得很容易