计算时间和日期差异
我目前正在编写一份报告来计算iReport中两个日期变量之间的TotalTimeDifference
。
我正在比较的两个变量是MO_DATECREATED
和MO_DATECOMPLETED
,我只是想计算时差 。
我已经尝试设置一个变量来简单地减去这两个变量 – 当然这根本没有用。
我将附上我目前所拥有的照片,但我正在寻找比较两个变量(包含日期/时间)并打印出时间差异变量的方法。
示例:如果MO是started at 1/2/15 12:55pm
并completed at 1/3/15 1:55pm
我想打印时差或花费多长时间,为25 hours
我怎样才能在iReport中执行此操作? 谢谢你帮助新手!
编辑回答后,我想在节目日:
您不需要变量,直接使用textFieldExpression
如果声明MO_DATECREATED
和MO_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
并询问他如何显示分钟,为此我创建了一个关于如何创建单个表达式的一般问题, 显示两个日期之间的时差,如年,月,日,小时,分钟,秒 ,现在回答了
这是临时解决方案