计算时间和日期差异

我目前正在编写一份报告来计算iReport中两个日期变量之间的TotalTimeDifference

我正在比较的两个变量是MO_DATECREATEDMO_DATECOMPLETED ,我只是想计算时差

我已经尝试设置一个变量来简单地减去这两个变量 – 当然这根本没有用。

我将附上我目前所拥有的照片,但我正在寻找比较两个变量(包含日期/时间)并打印出时间差异变量的方法。

示例:如果MO是started at 1/2/15 12:55pmcompleted at 1/3/15 1:55pm我想打印时差或花费多长时间,为25 hours

我怎样才能在iReport中执行此操作? 谢谢你帮助新手!

我的问题我的报告

编辑回答后,我想在节目日:

您不需要变量,直接使用textFieldExpression

如果声明MO_DATECREATEDMO_DATECOMPLETED字段:

作为java.lang.Date

    

textFieldExpression将是($F{MO_DATECOMPLETED}.getTime()-$F{MO_DATECREATED}.getTime())/(1000*60*60) + " hours"

嘿,这就是java,所以要了解它的作用检查出来: 如何计算java中的时差?

as java.lang.String

    

我们需要先将它们解析为Date对象..你的模式是mm/dd/yy hh:mm a

 (new java.text.SimpleDateFormat("mm/dd/yy hh:mm a").parse($F{MO_DATECOMPLETED}).getTime()-new java.text.SimpleDateFormat("mm/dd/yy hh:mm a").parse($F{MO_DATECREATED}).getTime())/(1000*60*60) + " hours" 

考虑到它们可能为null我们最好添加printWhenExpression

完成结果

       

毫无疑问,它们是java.lang.Date对象更好,报告将填充更快,没有解析错误的风险,您可以正确导出到excel ecc。 要根据需要格式化java.lang.Date对象,只需使用pattern属性。

编辑:用户选择了java.util.Date并询问他如何显示分钟,为此我创建了一个关于如何创建单个表达式的一般问题, 显示两个日期之间的时差,如年,月,日,小时,分钟,秒 ,现在回答了

这是临时解决方案